Кодировки в Java

211
04 декабря 2018, 15:10

Есть блок кода, который считывает строку из файла и строка будет на русском языке, но соответственно в терминале вместо русских буквы - вопросительные знаки, а на английском языке нормально выводить, я так понимаю проблема с кодировками, как можно решить эту проблему?

    public static void HabitFileReader() {
    try {
        FileReader fReader = new FileReader("C:/ProgramData/Tracker Habits/Habit List.txt");
        Scanner fScanner = new Scanner(fReader);
        while (fScanner.hasNext()) {
            Habit1 = fScanner.nextLine();
            System.out.println("Line 1 - " + Habit1);
            fReader.close();
        }
    } catch (IOException e) {
        System.out.println("\nFile read error");
    }
}

Блок кода для записи:

 public static void FileWriter() {
    try {
        FileWriter fWriter = new FileWriter("C:/ProgramData/KateProgram/date.txt");
        fWriter.write(General.Writer);
        System.out.println("File successfully write");
        fWriter.close();
        System.out.println("Program complete");
    }catch (IOException e) {
        System.out.println("File write error");
    }
}
Answer 1

Недавно похожий вопрос задал, по по выгрузке из БД. В обычном ридере могу предположить, что файл, который находится в текстовом формате не UTF-8. Ты выложил код, где ты считываешь файл. Но нету кода где ты его записываешь. Конечно можно указать кодировку при чтении, но это лишние строки кода. Лучше сразу записать файл в UTF-8; Потом как вариант может быть в pom'е, но там по стандарту UTF-8. Маловероятно что там накосячил ты. Нашел пример в гугле:

Для записи:

File file = new File("test.txt");
BufferedWriter bufferedWriter = 
new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF8"));

Для чтения:

File file = new File("test.txt");
BufferedReader bufferedReader = 
new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF8"));
READ ALSO
Правильный выбор коллекции

Правильный выбор коллекции

Подскажите лучшую коллекцию в плане производительности в ситуации, когда нужно очень часто её создавать и пополнятьПри этом порядок добавления...

183
JavaFX как убрать выделение в ListView

JavaFX как убрать выделение в ListView

Мне нужно убирать выделение, если пользователь нажал на строку ListView, которая пустаИз-за того что выделение не сбрасывается - нельзя понять...

345
планировщик задач

планировщик задач

собственно задача: нужно один раз в указанное время (исходя из текущей времени рассчитывается) выполнять метод

239
Как сделать след от нажатия на кнопку?

Как сделать след от нажатия на кнопку?

Не пойму как сделать вот такой след у кнопки, который заполняется при нажатии на негоМожет кто знает как?

259