Есть блок кода, который считывает строку из файла и строка будет на русском языке, но соответственно в терминале вместо русских буквы - вопросительные знаки, а на английском языке нормально выводить, я так понимаю проблема с кодировками, как можно решить эту проблему?
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");
}
}
Недавно похожий вопрос задал, по по выгрузке из БД. В обычном ридере могу предположить, что файл, который находится в текстовом формате не 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"));
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости