Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Работа с кириллицей


Автор: agR 26.9.2006, 00:29
Посмотрел на форуме и нашел вот это
Цитата
LSD
Для чтения текстовой информации надо использовать Reader
    
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("text.txt"), "windows-1251"));
String str;
while((str = reader.readLine()) != null)
{
  ...
}

а для записи Writer.


сделал так:
Код


BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(this.fc.getSelectedFile())));
                       out.write("Исходная матрица:\n");
........


в конце, после ...FileOutputStream(this.fc.getSelectedFile()... я не указал (пытался, но компилятор ругнулся) "windows-1251".
Сохранил в файл. Кириллица, высветилась нормально. Дал поюзать людям вдалеке, сказали, что с кодировкой проблемы, у меня же все ок. 
Это я че-нить не так сделал или это на их стороне проблемы?

Автор: Lerm 26.9.2006, 01:33
Цитата(agR @ 26.9.2006,  00:29)
сделал так:
Код


BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(this.fc.getSelectedFile())));
                       out.write("Исходная матрица:\n");
........


в конце, после ...FileOutputStream(this.fc.getSelectedFile()... я не указал (пытался, но компилятор ругнулся) "windows-1251".
Сохранил в файл. Кириллица, высветилась нормально. Дал поюзать людям вдалеке, сказали, что с кодировкой проблемы, у меня же все ок. 
Это я че-нить не так сделал или это на их стороне проблемы?


Кодировку нужно указать как параметр конструктора OutputStreamWriter-а, а не FileOutputStream:
Код

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(this.fc.getSelectedFile()),"windows-1251"));
out.write("Исходная матрица:\n");

Автор: agR 26.9.2006, 10:52
Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)