2012-11-16 5 views
4

필자가 작성한 프로그램의 출력 파일이 있습니다. FileWriter 및 BufferedWriter에 의해 작성됩니다..jar 파일로 내보낼 때 " n"이 작동하지 않습니다.

FileWriter errout = new FileWriter(new File("_ErrorList.txt")); 
    BufferedWriter out = new BufferedWriter(errout); 

나중에 비슷한 줄을 사용하여 파일에 씁니다.

out.write("Product id:" + idin + " did not fetch any pictures.\n "); 

Eclipse에서 프로그램을 간단하게 실행할 때 출력 파일의 형식이 올바르게 지정되며 각 메시지는 새 줄에 쓰여집니다. 그러나 .jar 파일로 내보낼 때 더 이상 작동하지 및 "\ n"작동하지 않는 것처럼 한 줄에 모든 메시지를 넣습니다.

FileWriter/BufferedWriter를 잘못 사용하고 있습니까, 아니면 .jar 파일에서 작동하지 않습니까?

+1

교체'\ n'은' –

답변

5

직접 '\ n'을 사용하지 마십시오. out.newLine()을 사용하여 줄 바꿈을 입력하거나 에 BufferedWriter을 입력하고 out.println()을 사용하십시오.

어쨌든 .jar 파일과 관련이 없습니다. Eclipse가 영리하고 운영 체제가 줄 바꿈을하지 않을 가능성이 더 높습니다.

+0

좋아는 사용 out.newLine() 문제를 해결했습니다. 도움을 주셔서 감사합니다 – user1816892

4

하나, 줄 구분 기호가 유효한지 확인하십시오. @Andrew Thompson이 제공 한대로 System.getProperty ("line.separator")를 사용하십시오.

이 새로운 행을 많이 작성하는 경우 다른 옵션은 PrintWriter에 BufferedWriter를 래핑하는 것입니다. `, System.getProperty ("line.separator")에와

FileWriter errout = new FileWriter(new File("_ErrorList.txt")); 
    BufferedWriter out = new BufferedWriter(errout); 

    PrintWriter printWriter = new PrintWriter(out); 
    printWriter.println("Product id:" + idin + " did not fetch any pictures."); 
+0

** 나는 ** println 클로즈드가 있어야만한다는 것을 알았습니다. 찾고있을 때 또 다른 질문에 정신을 잃었습니다. ;) –

+0

@AndrewThompson 거기에 그렇게했습니다. 내가 할 수있는만큼 당신에게 신용을 줬어. :) – tjg184

+0

* "나는 내가 할 수있는만큼 당신에게 신용을 주었다."* 나는 "내가 당연한 것보다 더 많은 신용을 얻는다". ;) +1 귀하의 답변, BTW. –