Java 使用BufferedWriter将不同类的数据写入文本文件
我正在使用Java 我已经创建了一个文本文件。在该文本文件中,我希望在class1的文本文件中存储一个值。然后,我想在第2行的class2文本文件中再存储一个值。然后,我希望在类3的文本文件的第3行中存储一个以上的值,等等。检索文本文件时,应该如下所示:Java 使用BufferedWriter将不同类的数据写入文本文件,java,Java,我正在使用Java 我已经创建了一个文本文件。在该文本文件中,我希望在class1的文本文件中存储一个值。然后,我想在第2行的class2文本文件中再存储一个值。然后,我希望在类3的文本文件的第3行中存储一个以上的值,等等。检索文本文件时,应该如下所示: 77 65 34 我遇到的问题是,当我转到下一个类时,文本文件内容会被删除。例如,文本文件将仅显示最后一个数据值。并删除前面的内容(在上面的示例中,只有34个也会出现在第一行,而它应该在第三行) class1中的一些代码: Buffere
77
65
34
我遇到的问题是,当我转到下一个类时,文本文件内容会被删除。例如,文本文件将仅显示最后一个数据值。并删除前面的内容(在上面的示例中,只有34个也会出现在第一行,而它应该在第三行)
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的过程中一行接一行地添加数据就可以了 创建FileWriter的第二个实例时,会将其设置为从文件开头开始写入。所以它会覆盖您刚才写入的数据。您可以选择重用FileWriter实例,或者在第二次打开文件时查找文件末尾 我建议采取第一种办法:
FileWriter sharedFileWriter = new FileWriter("myfile.txt");
class1 c1 = new class1(sharedFileWriter);
class2 c2 = new class1(sharedFileWriter);
要应用而不是删除文件中的现有数据,您应该像这样使用FileWriter构造函数
FileWriter fwriter0 =new FileWriter("MAP_allData.txt", true);
构造函数中的第二个“boolean”参数“true”将告诉文件编写器追加。
谢谢。它起作用了!但是,每次我编译/执行程序时,我都希望MAP_allData.text以全新的方式开始;在所有内容之前,它会删除新值集的内容。但是以前执行的值仍然存在。@Faraz Khan-为了解决您的问题-在您打开文件进行写入时,第一次使用普通构造函数'FileWriter fwriter0=new FileWriter(“MAP_allData.txt”);'稍后,当您的其他类写入同一个文件时,使用带有布尔参数“FileWriter fwriter0=newfilewriter”(“MAP_allData.txt”,true);”的构造函数@法拉兹·汗-不客气。如果我的解决方案对你有帮助,请接受我的回答。