2013-12-12 5 views
0

Java에서 CipherBufferedReader/Writer으로 약간의 문제가 발생했습니다. 모든 것이 잘 작동합니다. 원하는 사람이 있다면 내 코드를 원하는대로 게시 할 수 있습니다. 이 설정은 할 수BufferedReader/Writer가 특수 문자로 올바르게 작동하지 않습니다.

FileWriter fwrit = new FileWriter(file); 
BufferedWriter buffwrit = new BufferedWriter(fwrit); //The writer itself 
String encTextString = new String(encText,"ISO-8859-1"); //The String that gets written later 

라이터 특수 문자를 작성하고 내 생각 : 내가 (잘 작동) 문자열로 암호화 된 바이트를 변환하려고 다음 설치를 BufferedWriter 가진 파일에 기록하는 경우 문제는 문제는 여기에 없다 (만약 나에게 말해 준다면). (네, 이미 파일에 쓰지 않고 해독하고 작동하면 다시 작동하는지 확인합니다.) 문제는 내가 정확히 BufferedReader을 설정하지 못합니다. 문자 또는 문자를 올바르게 읽는 다른 writertype이 있습니까?

+0

가능한 중복이 될 수 있습니까? http://stackoverflow.com/q/9281629/2231632 – prabugp

+0

나는 이미 그 질문에서 제안되었던 것을 시도했다. – Slashking

+0

Russell이 제안한 것처럼 OutputStreamWriter를 사용해 보셨습니까? – prabugp

답변

0

아마도 FileWriter를 사용하지 않는 것이 더 좋을 것입니다.이 클래스는 FileOutputStream을 OutputStreamWriter로 랩핑하는 편리한 클래스입니다.

OutputStreamWriter에는 특정 인코딩을 사용하여 비 ASCII 문자를 인코딩하는 생성자가 있습니다.

FileWriter는 .... 그 부족 FileWriter javadoc가에서

+0

뭔가 잘못되었습니다. 나는 당신의 방법과 같은 ISO-8859-1 인코딩을 사용했다. 결과 : 쓰여진 물건 : [B @ 16d19d73 E z 9 읽은 물건 : E? z? 9 ?? [B @ 5ccc078 – Slashking

+0

더 많은 코드 – GerritCap

2

:. 문자 파일을 작성하기위한

"간이 클래스는이 클래스의 생성자는 기본 문자 인코딩과 디폴트의 byte 버퍼의 크기가 있다고 가정 이러한 값을 직접 지정하려면 FileOutputStreamOutputStreamWriter을 구성하십시오. "

기본 charset은 아마도 UTF-8입니다. 당신이 ISO-8859-1을 쓰고 싶다면, 당신은해야 할 것 :

지점
new OutputStreamWriter(new FileOutputStream(file), Charset.forName("ISO-8859-1")) 

더 많은,하지만 당신의 목표는 다음, 변경없이 파일로 인코딩 된 바이트를 얻을 경우. ..

"FileWriter은 원시 스트림의 스트림을 쓰는 데는 FileOutputStream을 사용하는 것이 좋습니다."

+0

을 게시 하시겠습니까? BufferedWriter buffwrit = 새로운 BufferedWriter (새로운 OutputStreamWriter (새로운 FileOutputStream (file), "ISO-8859-1")); – Slashking