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


Автор: arcsupport 28.12.2011, 15:34
Здравствуйте.
Подскажите, пожалуйста, как при вызове java.io.FileReader и java.io.FileWriter принудительно установить кодировку UTF-8.
Это я нашел ошибку с помощью FindBugs.

Автор: AntonSaburov 28.12.2011, 16:16
Код

import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

public class ExampleEncoding {

    public static void main(String[] args) {
        String test = "Тестовая строка для демонстрации кодировок";
        try {
            {   // Вариант записи кодировки "cp1251" (Windows)
                BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("windows.txt"), "cp1251"));
                out.append(test);
                out.close();
            }
            {   // Вариант записи кодировки "UTF-8"
                BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("utf.txt"), "UTF-8"));
                out.append(test);
                out.close();
            }
            System.out.println("Files are created");
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (UnsupportedEncodingException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

Автор: Stolzen 28.12.2011, 16:31
Или так
Код

public static final Charset UTF = Charset.forName("UTF-8");
...
new InputStreamReader(stream, UTF);

Автор: arcsupport 28.12.2011, 17:45
Спасибо.

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