簡體   English   中英

使用BufferedWriter將數據從不同的類寫入文本文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM