Android写入文件不起作用

时间:2017-05-24 09:46:30

标签: android writetofile

对于Android,我是初学者。关于写入文件,我遇到了一个问题。我想将一个表单中的输入保存到文件中。但是,我写的那段代码不是写在我的文件中。有人可以帮帮我吗? 代码看起来像这样:

submit.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
          StringBuilder s = new StringBuilder();
          s.append("Event name: " + editText1.getText() + "|");
          s.append("Date: " + editText2.getText() +  "|");
          s.append("Details: " + editText3.getText() + "|");

          File file = new File("D:\\config.txt");
          try {
              BufferedWriter out = new BufferedWriter(new FileWriter(file, true), 1024);
                out.write(s.toString());
                out.newLine();
                out.close();
           } catch (IOException e) {
                e.printStackTrace();
           }
      }
});

所以,我有一个包含3个字段的表单:事件的名称,日期和描述。这些我想保存到我的文件。我应该提一下,我使用模拟器进行测试。

2 个答案:

答案 0 :(得分:2)

对文件使用以下路径。它会将文件写入存储的根文件夹。

String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File file= new File(extStorageDirectory, "config.txt");

writeToFile("File content".getBytes(), file);

writeToFile

public static void writeToFile(byte[] data, File file) throws IOException {

    BufferedOutputStream bos = null;

    try {
        FileOutputStream fos = new FileOutputStream(file);
        bos = new BufferedOutputStream(fos);
        bos.write(data);
    }
    finally {
        if (bos != null) {
            try {
                bos.flush ();
                bos.close ();
            }
            catch (Exception e) {
            }
        }
    }
}

不要忘记在AndroidManifest.xml

中添加以下权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

答案 1 :(得分:-1)

https://github.com/rznazn/GPS-Data-Logger/blob/master/app/src/main/java/com/example/android/gpsdatalogger/StorageManager.java

这是一个...几乎完整的类,用于写入设备模拟外部存储器上的文档文件夹。

不要忘记向清单添加写权限。