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