2013-05-20 4 views
0

이전에 파일에 기록 했으므로이 문제를 해결하지 못했습니다. 완전히 혼란 스럽습니다.이상한 FileWriter 오류

EDIT : 죄송합니다. 오류는 .txt 파일에 줄을 쓰지 않고 있다는 것입니다.

System.out.println(upto); 
    FileWriter writer; 
    BufferedWriter write; 

    upto = 10; 
    try{ 
    writer = new FileWriter(theFile);  
    write = new BufferedWriter(writer); 
    write.write(upto); 
    write.flush(); 
    write.close(); 

    }catch(Exception e){ 
     System.err.println("cant print line"); 
    } 

thats는 파일에 쓰는 코드이며 다른 코드는 파일 경로를 선언하는 코드입니다. 예외 오류도 발생하지 않습니다. 나는 홍수를 피고/닫는 것을 확실히했다. 누군가 도움을 줄 수 있습니까?

+0

무엇이 오류입니까? –

답변

1

줄 바꿈 인 문자 10을 인쇄하고 있습니다. 숫자 10을 인쇄하려면

write.write(String.valueOf(upto)); 
+0

사실 그는 int를 출력하므로 4 바이트가됩니다. 그래서 그는'[NUL] [NUL] [NUL] [LF]'를 인쇄하고 있습니다. 어쨌든, +1. – SJuan76

+0

좋은 지적입니다. [javadoc] (http://docs.oracle.com/javase/1.4.2/docs/api/java/io/BufferedWriter.html#write%28int%29)은 약간 모호합니다. 매개 변수 유형은 int가 아닌 char이어야한다고합니다. 메소드 설명은 int가 내부적으로 char로 형변환됨을 제안합니다. – Tap

+0

좋아요, javadoc을 검사하지 않았는데 과부하 된 함수라고 생각했습니다. (write (int), write (char) 등). 내 잘못이야. – SJuan76

1

숫자를 기록하고 있습니다. 즉, 숫자 (0x0000000A)의 바이트를 쓰고 문자 표현은 10이 아닙니다. 메모장 등으로 열면 인쇄 가능한 ASCII 값이 포함되어 있지 않으며 단지 비어있는 것으로 나타납니다.

차이점을 확인하려면 write.write(Integer.toString(upto))을 사용하십시오.