2009-09-14 3 views
0

나는 Java에서 BufferedReader 및 BufferedWriter로 텍스트 (CAL 코드)를 파싱했습니다. 불행히도 빨간색으로 작성하여 outStream.write (행)으로 썼습니다. 변경 한 스크린 샷을보고하십시오java bufferedReader, 읽는 것과 다른 것을 씁니다.

http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png 시간은 ** P는 : 당신이 보는대로 내가하지 의도 있지만

을 //uploadz.eu/images/c03hgkrgrmit2ij2mug.png, 일부 특수 문자는 라인을 변경 않았다 그들을 바꿔라.

내가 아는 한, Bufferedwriter/Reader는 기본적으로 유니 코드로 작동해야합니다.

답변

2

글쎄 BufferedWriterBufferedReader은 인코딩에 의존하지 않습니다. 기존의 독자와 작성자를 버퍼링하기 때문에 실제 인코딩을 다루지 않습니다.

이제 FileWriterFileReader은 기본 시스템 인코딩 (urgh)을 사용합니다. 이 작업을 수행하려면 보통/InputStreamReader 또는 OutputStream/OutputStreamWriter 쌍 (가능한 경우 BufferedReader/BufferedWriter으로 묶음)을 사용하고 인코딩을 명시 적으로 지정해야합니다.

실제로 읽는 내용을 말하지 않았습니다. 파일입니까? 파일의 인코딩을 알고 있습니까?

+0

BufferedWriter df = 새 BufferedWriter (새 OutputStreamWriter ("out.txt"))); 이 작동하지 않습니다. .txt 파일입니다. 불행히도 나는 파일의 인코딩을 모른다. – dayscott

+0

발견 : ANSI 여야합니다. 나는 더 제안을 감사하겠습니다. – dayscott

+0

"ANSI"는 단일 인코딩이 아닙니다. 이것은 다양한 인코딩을 의미 할 수 있으며 일반적으로 ASCII에 대한 8 비트 확장입니다. –

0

콘텐츠를 텍스트 (String)로 취급하려는 경우 또는 복사가 목표 일 때 인코딩을 알고 있거나 콘텐츠를 바이트 배열로 처리해야합니다.

+0

파이어 폭스로 http://stackoverflow.com/questions/499010을 찾을 수 있습니다 "Cp1252를" 내가 봤 그 "Cp1252를" 자바 "표준"문자셋 인 것 같습니다. – dayscott

+0

wordStream = 새 FileInputStream ("x.txt"); \t \t InputStreamReader input = null; \t \t 입력 = 새로운 java.io.InputStreamReader (wordStream, "Cp1252"); \t \t 독자 = 새로운 BufferedReader (입력); \t \t 문자열 str; \t \t 시도 { \t \t \t 동안 (! (STR = reader.readLine()) = NULL) { \t \t \t \t에서 System.out.println (STR); \t \t \t} 불행히도 출력물은 여전히 ​​잘못 인코딩됩니다. – dayscott

+0

문제가 해결되었습니다. 단순히 RandomAccessFile 클래스를 사용하여 . 나는 readLine과 writeBytes를 사용했다. 구분 기호로 나는 System을 사용했다.getProperty ("line.separator") - Win XP를 실행 중입니다. thx 지원 팀원 : – dayscott

관련 문제