나는 명백하게 사용자 정보를 파일에 쓰는 데 사용되는 filewriter
을 가지고 있습니다. 그것은 잘 씁니다, 프로그램이 잘 실행되지만 작가는 원하는 방식으로 파일에 쓰지 않습니다. 나는 그것이 쓰고있는 파일을 onpening 할 때 알아 차렸다. 빈 라인을 때로는 내가 원하지 않는 곳에 남겨두고, 왜 그런지 볼 수 없다. 다음은 파일 쓰기와 관련된 코드입니다 (이 파일은 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
@kolossus [closing] (http://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html#close())는 이미 플러시합니다. – Philipp
While 루프는 파일에 새 행만 쓰고 있습니다. – EvenPrime