我正在努力使用这个写文件来保存双数字(数字+" \ n"我希望有一个数字用于行)。我有一个类似的代码,使用OutputStream而不是FileWriter,但OutputStream覆盖最后一个数字。
使用FileWritter我不创建文件,查看logcat:
07-08 08:44:08.316 3076-3076/com.example.emilio.notification W/System.err﹕ java.io.FileNotFoundException: test3.txt: open failed: EROFS (Read-only file system)
这是写代码:
private void writeMyArray(double rate) {
try{
FileWriter fileWritter = new FileWriter("test3.txt");
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(Double.toString(rate)+"\n");
Log.i("MyActivity", "a rate é:" + rate);
bufferWritter.close();
}catch(IOException e){
e.printStackTrace();
}
}
如何创建文件,因为它将位于设备的内部存储器内。
我做了一项研究,我发现了一个与我的问题相同但没有正确答案的问题。我试过这个:
PrintWriter fileWritter = new PrintWriter(new File(this.getFilesDir(), "testfile.txt"), "UTF-8");
并且在log cat中我有这个错误:
07-08 09:17:04.005 16463-16463/com.example.emilio.notification W/System.err﹕ Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
有人可以帮忙吗?抱歉我的英文不好
PS:我在本文档中没有看到任何符合我的代码的内容:http://developer.android.com/training/basics/data-storage/files.html
答案 0 :(得分:0)
我没有测试过这段代码,但您可以尝试一下:
private void writeMyArray(double rate) {
try{
String filename = "test3.txt";
File file = new File(context.getFilesDir(), filename);
FileWriter fileWritter = new FileWriter(file, true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(Double.toString(rate)+"\n");
Log.i("MyActivity", "a rate é:" + rate);
bufferWritter.close();
}catch(IOException e){
e.printStackTrace();
}
catch(NullPointerException e){
e.printStackTrace();
}
}