簡體   English   中英

如何阻止我的bufferedWriter重寫文件中已經存在的文本?

[英]How can I stop my bufferedWriter from re-writing the text which is already in the file?

我有一個BufferedWriter ,用於將用戶詳細信息寫入文件。 我注意到,但是,它不是以我想要的格式寫入文件,我似乎找不到一種方法可以讓我在新行上寫文本,而無需覆蓋現有內容或復制出來文件中已有的文本。 有什么辦法可以編輯下面的代碼,以允許上面的代碼?

    Details = "Name: " + name + " CardNo: " + CardNo + " Current Balance: " + balance + " overdraft? " + OverDraft + " OverDraftLimit: " + OverDraftLimit + " pin: " + PinToWrite;
    try{
        //Create writer to write to files.
        File file = new File(DirToWriteFile);
        FileOutputStream fos = new FileOutputStream(file, true);
        Writer bw = new BufferedWriter(new OutputStreamWriter(fos, "UTF8"));        
        // FileReader reads text files in the default encoding.
        FileReader fileReader = new FileReader("VirtualATM.txt");
        // Always wrap FileReader in BufferedReader.
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        String currentData = "";
        while((currentData=bufferedReader.readLine()) != null) {
                line = currentData;
                bw.write(currentData);
                ((BufferedWriter) bw).newLine();
        }
        bw.write(Details);
        System.out.println("Account created!");

程序沒有問題(所有variables正常工作,並且已在某處聲明)我只張貼了與問題相關的代碼片段。 電流輸出到文件運行了幾次后,看起來像這樣

我懂了! 更改:

    while((currentData=bufferedReader.readLine()) != null) {
            line = currentData;
            bw.write(currentData);
            ((BufferedWriter) bw).newLine();
    }
    bw.write(Details);

至:

bw.append(Details);
((BufferedWriter) bw).newLine();

這樣可以確保不會重復寫入任何數據,並且不會復制除從用戶那里獲得的信息以外的任何文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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