这是我使用的代码,我没有错误或警告,但文件是空的,我创建了aq.txt文件并将其放在工作区中,它也显示在项目中。我确定这是一个愚蠢的东西我不知道但是我无法理解它。此外,我尝试了所有其他问题,但建议的答案是关闭流和/或冲洗它,我做的两个,但他们似乎没有工作。任何帮助将不胜感激!
Writer writer = null;
FileOutputStream fos= null;
try{
String xyz= "You should stop using xyz";
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(getFilesDir()+File.separator+"aq.txt")));
writer.write(xyz);
writer.flush();
}
catch(IOException e) {
System.out.println("Couldn't write to the file: " + e.toString());
}
finally{
if(writer != null){
try {
writer.close();
}
catch(IOException e1) {
e1.printStackTrace();
}
}
}
答案 0 :(得分:2)
试试这样:
fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(fos));
writer.write(xyz);
writer.flush();
Context类提供了一个帮助方法Context.openFileOutput(String name, int mode),它将为您的应用程序Files目录中的文件返回FileOutputStream。
我没有看到任何直接原因导致你的方式不起作用,但我知道我已经成功地使用了这种方式。
编辑:重新阅读您的问题后,我认为您对此文件的写入位置感到困惑。它不会写入工作区内的项目文件夹。这将被写入您运行它的Android设备的内部存储。每个应用程序都有自己的存储空间块位于\data\data\[package-name]\Files\
您的文件将被写入那里,因此您将无法立即打开它并查看其内容(除非您的设备已植根。你将不得不用java代码打开它并将其内容打印到Log或其他输出方法,以验证你的写入是否有效。
编辑2:阅读文件
FileInputStream in = openFileInput(FILE_NAME);
InputStreamReader inputStreamReader = new InputStreamReader(in);
BufferedReader br = new BufferedReader(inputStreamReader);
String line = br.readLine();
Log.d("TAG", line);
这将读取并向日志输出文件的第一行。
答案 1 :(得分:0)
这肯定有用:
File file = new File("fileName");
FileWriter fileWriter = new FileWriter(file);
BufferedWriter writer = new BufferedWriter(fileWriter);
writer.write("data to write in the file.");
writer.flush();