У меня есть 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();
Желаемый вывод в файл - это когда нигде в файле не осталось пустых строк, фактический вывод в файл после записи в него несколько раз выглядит следующим образом: