Android:将文本写入txt

use*_*692 4 android text file fileoutputstream

使用以下代码,我尝试写入我的SD卡:

public void writedata(String data) {
          //BufferedWriter out = null;

          System.out.println(data);
          try{

              FileOutputStream out = new FileOutputStream(new File("/sdcard/tsxt.txt"));
              out.write(data.getBytes());
              out.close();  

                } catch (Exception e) { //fehlende Permission oder sd an pc gemountet}
                    System.out.println("CCCCCCCCCCCCCCCCCCCCCCCALSKDJLAK");
                }

          }
Run Code Online (Sandbox Code Playgroud)

清单中的许可:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
Run Code Online (Sandbox Code Playgroud)

但现在,当我打开文件时,没有任何内容.哪个问题?我确定data有一些价值.

编辑:

我在LogCat中收到此消息:

02-06 01:59:51.676: W/System.err(1197): java.io.FileNotFoundException: /storage/sdcard0/sdcard/tsxt.txt: open failed: ENOENT (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

我试图在SD卡上创建文件,但仍然是同样的错误.如果文件不存在,是否有创建文件的代码?

mez*_*mez 5

试试这段代码:

File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/dir");

File file = new File(dir, "tsxt.txt");

FileOutputStream f = new FileOutputStream(file);
Run Code Online (Sandbox Code Playgroud)

所以文件的路径不正确.您应该删除目录名称:

File dir = new File (sdCard.getAbsolutePath() + "/");
Run Code Online (Sandbox Code Playgroud)