我正在使用Java。
我创建了一个文本文件。在该文本文件中,我希望将一个值存储在class1的文本文件中。然后我希望在第二行的class2中将另外一个值存储在textfile中。然后我想再将一个值存储在类3等文本文件的第3行中。检索时,文本文件应如下所示:
77
65
34
我遇到的问题是,当我继续下一堂课时,文本文件内容会被删除。例如,文本文件仅显示最后一个数据值。并删除之前的那些(在上面的示例中,第一行上只有34个也会出现,它应该在第3行)。
class1中的一些代码:
BufferedWriter outputFile0=null;
try {
int x = value_MAP();
FileWriter fwriter0 =new FileWriter("MAP_allData.txt");
outputFile0 = new BufferedWriter(fwriter0);
outputFile0.write(""+x);
outputFile0.newLine();
} catch( Exception y ) {y.printStackTrace();}
同样的代码再次出现在class2,class3等中:
BufferedWriter outputFile0=null;
try {
int x = value_MAP();
FileWriter fwriter0 =new FileWriter("MAP_allData.txt");
outputFile0 = new BufferedWriter(fwriter0);
outputFile0.write(""+x);
outputFile0.newLine();
} catch( Exception y ) {y.printStackTrace();}
有没有办法告诉Java不要担心擦除数据,只需在从1级到x级旅行时一行接一行地添加数据。
答案 0 :(得分:3)
当您创建FileWriter的第二个实例时,设置为在文件的开头写入。因此它会覆盖您刚刚编写的数据。您的选择是重复使用FileWriter实例或在第二次打开文件时搜索到文件的末尾。
我会推荐第一种方法:
FileWriter sharedFileWriter = new FileWriter("myfile.txt");
class1 c1 = new class1(sharedFileWriter);
class2 c2 = new class1(sharedFileWriter);
答案 1 :(得分:3)
要申请而不是删除文件中的现有数据,您应该像这样使用FileWriter构造函数。
FileWriter fwriter0 =new FileWriter("MAP_allData.txt", true);
构造函数中的第二个'boolean'参数'true'将告诉文件writer要追加。 javadoc