Android写入文件不起作用

问题描述:

我是Android的初学者。关于写入文件,我遇到了一个问题。我想将一个表单中的输入保存到一个文件中。但是,我写的代码片段并没有写在我的文件中。任何人都可以帮我吗? 的代码看起来像这样: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个字段的一种形式:一个事件,日期和描述的名称。这些我想保存到我的文件。我应该提到我使用模拟器进行测试。

+3

obviosuly没有“D:\”在android – Selvin

+0

我应该如何提及路径? –

+1

阅读本文[关于保存文件的文档](https://developer.android.com/training/basics/data-storage/files.html) –

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

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" /> 
+0

现在我应该可以在外部看到保存的文件了,对吧?但我找不到它。 –

+0

@IngridStoleru,我已经更新了我的答案 – Pehlaj

+0

您使用的是哪个Android版本?请确保您提供权限,如果您使用的是Android 6或更高版本 – Pehlaj

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

这里是写作......几乎完整的类到文件文件夹在设备的模拟外部存储器上。

不要忘记将写入权限添加到清单。