2012-11-06 5 views
0

자바에서 내 BST 및 Trie를 마무리하는 마지막 단계에 있으며이 문제를 해결했습니다. 마지막 요소를 파일로 인쇄 할 수 없습니다. 그것들을 바꾸려고 시도한 것은 toString 메소드가 아닙니다. 나는 잠시 후에 교수님들 중 한 명이 파일을 닫는 것에 대해 언급 한 것을 기억합니다. close 메서드의 괄호 안에 int 값을 넣는 선상에 뭔가가 있습니다. 아래에서이 코드를 개발할 것입니다 (맞는지 확실하지 않거나 모호하게 기억하는 것) 여기 코드 조각이 있습니다. 나는 문제가있다. 내가 올바르게 기억왜 마지막 요소가 인쇄되지 않습니까?

 try{ 
      output = new PrintWriter(inputFile); 

      output.println("BST:"); 
      output.println(tree.toString()); 
      output.println("Trie:"); 
      output.println(trie.myToString()); 


      output.close(); 

     } 
      catch(IOException e){} 
     System.out.println("Goodbye");  

때문에, 교사는 output.close 같은 뭔가를했다 (0) 등,하지만 나에게 오류를 촬영합니다. 아무도 이것으로 나를 도울 수 있습니까? 고맙습니다.

+2

와 이유 인쇄 {output.flush() (출력 = 널!) output.close();}'권리를 마감 한 후 마지막 catch 블록의 버팀대. 그러면 파일을 릴리스 할 것입니다. 즉, 마지막 요소가 인쇄되지 않는다는 사실에 관해 더 많은 정보를 제공해야합니다. – npinti

+0

npinti가 말하기를 좀 더 자세한 내용이 필요하고 마지막으로 결론을 내리는 방법이라고합니다. – Tom

+0

내 진술을 올바르게 말하지 않으면 죄송합니다. 마지막 요소는 필자가 마지막으로 호출 한 printLn이 화면에 인쇄되지만 내 파일에는 인쇄되지 않는다는 의미였습니다. – Ceelos

답변

1
catch(IOException e){} 

보십시오. 그러지 마.

은 적어도 당신은`마지막으로 {경우 둘 것 이상적으로

catch(IOException e) { 
    e.printStackTrace(System.err); 
} 
+0

아직 끝나지 않았습니다. 나는 그것을 넣기 전에 모든 것을 포함 할 예정이었습니다. 정말 고마워요. 고맙습니다. – Ceelos

+1

지금 문제가 있으면 지금 포함해야합니다. – eis

+0

읽으십시오 : [오류 숨기기] (http://en.wikipedia.org/wiki/Error_hiding) – wulfgarpro

0

출력

닫기 전에

output.flush() 

을 시도하거나 여기에 이유를 삼키는

output = new PrintWriter(inputFile,true); 
+0

감사합니다. – Ceelos

+2

닫기를 호출하면 문제가되지 않습니다. – Tom

+0

예, 맞습니다. Tom – Ceelos

관련 문제