Android 程序重新启动时文件被覆盖
我正试图把一些数据写入一个文件。但是,每次我重新启动程序时,我认为它都在覆盖原始文件(创建一个新文件?),下面是一段代码,我在其中实例化了一些东西。有什么我可以更改的,这样文件就不会每次都被覆盖吗?有点像if file.doesExistAndroid 程序重新启动时文件被覆盖,android,save,restart,filewriter,bufferedwriter,Android,Save,Restart,Filewriter,Bufferedwriter,我正试图把一些数据写入一个文件。但是,每次我重新启动程序时,我认为它都在覆盖原始文件(创建一个新文件?),下面是一段代码,我在其中实例化了一些东西。有什么我可以更改的,这样文件就不会每次都被覆盖吗?有点像if file.doesExist try { File root = Environment.getExternalStorageDirectory(); if(root.canWrite()){ File highscoresFile = ne
try {
File root = Environment.getExternalStorageDirectory();
if(root.canWrite()){
File highscoresFile = new File(root, "names.txt");
FileWriter writer = new FileWriter(highscoresFile);
BufferedWriter out = new BufferedWriter(writer);
//out.newLine();
out.append(name);
out.close();
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
您可能正在覆盖该文件。您可以使用不同的构造函数使用FileWriter附加到文件末尾 改用
FileWriter writer = new FileWriter(highscoresFile, true);
末尾的布尔值告诉您是否要附加到文件的末尾。当我尝试读取文件中的项目时,我只得到最后一个输入的项目:(我如何使它写入新行并仍然附加?它只是“写入”?您可能想将out.append(name)和out.newLine()转换为out.append;(当然也要取消注释!)我相信这会达到预期效果。好吧,我这么做了。我想我现在的问题是当我开始将东西存储到数组中时。它们都存储在数组的一个插槽中。嗯……我可能必须找到另一种方法来解决这个问题。