2013-03-04 3 views
0

나는 이진 트리를 파일에 저장하는 두 가지 방법을 쓰려고한다. 그들은 약간의 문제를 제외하고 올바르게 작동합니다. 문제는 생성 된 각 파일의 시작 부분에 빈 줄이 삽입된다는 것입니다. PrintWriter가 이것을하는 이유는 무엇입니까? 어떻게 방지 할 수 있습니까?PrintWriter가 각 파일의 시작 부분에 빈 줄을 인쇄하지 못하게하려면 어떻게합니까?

import java.io.*; 

void callSaveGame(String fileName) throws IOException { 
    PrintWriter out = new PrintWriter(new FileWriter("X:\\path\\to\\save\\directory\\" + fileName)); // associate PrintWriter with file 

    saveGame(root, out); 

    out.close(); 
} 

void saveGame(Node current, PrintWriter out) { 
    if (current != null) { 
     out.println(current.getData()); // print node to file 

     saveGame(current.getLChild(), out); // call for left child(ren) 

     saveGame(current.getRChild(), out); // call for right child(ren) 
    } 
} 

답변

3

그것은 빈 줄을 삽입한다 PrintWriter되지 않습니다 :

여기 내 코드입니다. PrintWriter하지 않습니다.

제공 한 코드 조각에는 실제 문제의 원인이 표시되지 않지만 코드가 실제 응용 프로그램을 정확하게 반영한 경우 문제가되는 공란은 이미 getData() 호출의 결과입니다.

+0

지적 해 주셔서 감사합니다. 루트 노드의 데이터 필드를 검사하여 개행 문자로 시작한다는 것을 알았습니다. – JTM

관련 문제