Суть вопроса следующая. В качестве учебного проекта решил написать консольное приложение для проверки знаний английских слов, программа примитивная и не претендует ни на что.
Код отстойный, пока учусь. Суть в следующем, все работает, проверяет слова, выводит результат, загружаешь любой txt'шник подготовленный и работает. Через IDEA.
НО при компиляции и запуске из командной строки не воспринимает русский язык.
Если проверочное слово на английском, то ответ засчитывается.
Как это можно исправить, может быть проблема в кодировке?
Пример txt'шника:
cat
кошка
dog
собака
mouse
мышь
book
книга
Если будет так, то проверка работает корректно:
cat
koshka
dog
sobaka
mouse
Присваивание кодировки InputStream'у не помогло.
Заранее спасибо.
Исходный код метода:
public class Printed {
// построчное чтение из файла
public static void FileReader() throws Exception {
String s;
int j = StringMeter.StringCounter();
String words[] = new String[j];
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
int answerCount = 0;
Scanner scanner = new Scanner(System.in);
String answer;
// Вводим в консоль путь к файлу с расширением
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
while (true) {
// пробуем прочитать файл, если файл не найдем перехватываем исключение и пробуем снова
// при успешном чтении цикл прерывается и распечатывает содержимое в консоль
try {
System.out.print("Enter filename : ");
s = buf.readLine();
buf = new BufferedReader(new FileReader(s));
break;
} catch (Exception e) {
System.out.println("Файл не найден!");
continue;
}
}
for(int i = 0; i < j;i++){
words[i]= buf.readLine();
}
for(int i = 0; i < j;i = i +2){
System.out.println(words[i]);
String string = buffer.readLine();
if(string.equals(words[i+1])){
answerCount++;
} else System.out.println(" НЕ ВЕРНО!");
}
//System.out.println(answerCount);
System.out.println("Ваш результат: " + answerCount + " из " + j/2);
buf.close();
}
}