我有一個filewriter
(顯然)正在用於將用戶信息寫入文件;它寫得很好,程序運行良好,但是作者不會以所需的方式寫入文件。我注意到在寫入文件時,它會留下空白的行,有時我不想要這些行,我看不出爲什麼。以下是與文件寫入相關的代碼(它是文件中使用filewriter
的唯一位置)。所有變量等都已被定義並正常工作。爲什麼寫入文件時,我的文件寫入器會留下不必要的行?
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); // **note second param?**
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((bufferedReader.readLine()) != null) {
line = CurrentData;
bw.write(CurrentData);
((BufferedWriter) bw).newLine();
}
bw.write(Details);
System.out.println("Account created!");
System.out.println(name + " Your card number is: " + CardNo);
// close the reader.
bufferedReader.close();
//Close the writer.
bw.close();
所需的輸出到文件裏沒有空行的文件中留下的任何地方,實際輸出到文件中寫入了幾次後,如下所示:
始終[刷新你的緩衝區(http://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html#flush())後,書寫 – kolossus 2014-09-30 14:42:05
@kolossus [關閉](http://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html#close())已經刷新。 – Philipp 2014-09-30 14:45:43
您的While循環僅將新行寫入文件。 – EvenPrime 2014-09-30 14:54:28