2012-10-16 5 views
2
File outputFile2 = new File("money2.txt"); 
    BufferedWriter outData2 = new BufferedWriter(new FileWriter(outputFile2)); 
    for(int i = 0 ; i < 4 ; i++) 
    { 
     System.out.println(ts[i].getMoney()); 
     outData2.write("TESTING"); 
     outData2.write(ts[i].getMoney()); 
     outData2.newLine(); 
    } 
    outData2.close(); 

이것은 내 코드입니다. 내 콘솔에서 얻을 수파일에서 특정 출력을 가져올 수 없습니다.

20000 
10000 
10000 
4000 

정확하게 내 파일에서 원하는 것입니다. 하지만 그 대신, 나는 money2.txt이 얻을 :

TESTING? 
TESTING? 
TESTING? 
TESTING? 

내가 이것을 디버깅하는 방법을 알아낼 수 없습니다 (테스트 디버깅 목적이있다). 내 파일을 '테스트'인쇄하기 때문에 제대로 (. 내 배열이 올바르게에서 읽고있는에 기록되는 (콘솔에 출력이 올바른 때문이다.

가 무엇이 잘못이에요?

+1

무엇'의 TS [I] .getMoney()'반환? –

답변

5

나는 ts[i].getMoney()이 의심 int과의 BufferedWriter은 당신이

. 사용 (char) 20000과 캐릭터에 대한 알 수없는 등의 ?을 인코딩으로 나타납니다 (char) 10000 즉 코드 포인트의 문자를 쓰는 의 PrintWriter

로 대신 다음을 시도하는 것으로 가정합니다 낮은 수준의 텍스트 인터페이스는 그대로 16,
File outputFile2 = new File("money2.txt"); 
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outputFile2))); 
for (int i = 0; i < 4; i++) { 
    System.out.println(ts[i].getMoney()); 
    out.println("TESTING " + ts[i].getMoney()); 
} 
out.close(); 
+0

좋아요! 이제 작동합니다. BufferedWriter를 사용하면 어떤 장점이 있습니까? 아니면 항상 PrintWriter를 사용해야합니까? – user1265125

+0

PrintWriter를 사용하는 것이 더 쉽습니다. 버퍼링이 필요하면 둘 다 사용할 수 있습니다. –

0

ts[i].getMoney().toString()을 추가하지 확인을 사용하는 경우 것은 Integer.toString(ts[i])

+0

'Integer.toString (ts [i])';)를 호출합니다. –

+0

@PeterLawrey 고침, 고마워요. –

관련 문제