Java BufferedReader, пишет что-то другое, чем читает - PullRequest
0 голосов
/ 14 сентября 2009

я проанализировал текст (код CAL) с помощью BufferedReader и BufferedWriter в Java, к сожалению, строки, которые я написал и написал с outStream.write (line); изменились, пожалуйста, посмотрите на скриншоты:

http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png ч ** р: //uploadz.eu/images/c03hgkrgrmit2ij2mug.png

как видите, какой-то специальный символ изменил строки, хотя я не собирался их менять.

Насколько я знаю, Bufferedwriter / Reader должен работать в Unicode по умолчанию.

Ответы [ 2 ]

3 голосов
/ 14 сентября 2009

Ну, BufferedWriter и BufferedReader кодируют агностик - они никогда не имеют дело с реальными кодировками, поскольку они просто буферизуют существующих читателей и писателей.

Теперь FileWriter и FileReader используют системную кодировку по умолчанию (urgh). Чтобы обойти это, вы обычно должны использовать пару InputStream / InputStreamReader или OutputStream / OutputStreamWriter (возможно, заключенную в BufferedReader / BufferedWriter) и явно указывать кодировку.

Вы не сказали, что вы на самом деле читаете - это файл? Вы знаете кодировку файла?

0 голосов
/ 15 сентября 2009

Вам следует знать кодировку, если вы собираетесь обрабатывать контент как текст (String), или, когда копирование является вашей целью, или трактовать контент как байтовый массив.

...