2011-02-10 1 views
2

사용자가 텍스트를 입력 할 수 있도록 JTextArea가있는 Java 응용 프로그램에서 작업하고 있습니다. 그것은 모든 라인의 양이 될 수 있지만, 필자는 모든 입력의 첫 번째 줄만 저장하는 FileWriter에 문제가 있습니다. 난 전혀 전에 스윙 또는 FileWriter를 사용한 적이, 그래서 나는 이것이 매우 잘못된 점점 수 있지만, 여기에 내 코드입니다 :Java FileWriter가 첫 번째 줄에만 쓰기

FileWriter fw = null; 
    try { 
     fw = new FileWriter(lastSavedFile); 
     details.write(fw); 
    } catch (IOException exception) { 
     System.err.println("Error saving file"); 
     exception.printStackTrace(); 
    } finally { 
     if (fw != null) { 
      try { 
       fw.close(); 
      } catch (IOException exception) { 
       System.err.println("Error closing writer"); 
       exception.printStackTrace(); 
      } 
     } 
    } 

감사합니다!

+2

"세부 사항"기능은 무엇입니까? 문제가있을 수 있습니다 ... – chahuistle

+2

전체 솔루션은 세부 정보가 참조하는 클래스에 있습니다 (코드 스 니펫에서 확인할 수 없음). – Yishai

답변

2

finally 블록에서 FileWriter를 닫기 전에 플러시를 시도하십시오. .

. 
if (fw != null) 
{ 
    try 
    { 
     fw.flush(); 
     fw.close(); 
    } catch (IOException exception) 
    { 
     System.err.println("Error closing writer"); 
     exception.printStackTrace(); 
    } 
} 
. 
. 

나는 @Yishai와 동의합니다. 가능한 경우 세부 정보 기능을 사용하십시오. 이것은 다른 사람들이 대답하도록 도울 것입니다.

+0

'fw.close()'가'flush' 자체를하지 않으면 버그가 있습니다. –

0

다음과 같이 생성자를 사용하십시오. FileWriter writer = new FileWriter ("lastsavedfilee.txt", true);