[英]Writing data from different classes to a text file using BufferedWriter
我正在使用Java。
我創建了一個文本文件。 在該文本文件中,我希望將一個值存儲在class1的文本文件中。 然后,我想再將一個值存儲在第二行的class2中的文本文件中。 然后,我想再將一個值存儲在類3等文本文件的第3行中。當檢索到該文本文件時,應如下所示:
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'將告訴文件編寫者追加。 的javadoc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.