Добрый день. Читаю статью "Разница между абстрактными классами и интерфейсами". По тому примеру решил сделать тест. Создал MyFile.txt файл с текстом (кодировка UTF-8). В программе написал считывание этого файла и запись посимвольно в ArrayList, который потом вывел в консоль. Проблема в том, что РУ буквы оно выводит непонятными символами. Подскажите пожалуйста в чем дело. Код
private static ArrayList<Character> listBIS = new ArrayList<Character>();

public static void main(String[] args) throws Exception, RuntimeException {
        String path = "/Desktop/MyFile.txt";
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));

        while (bis.available() > 0) {
            char c = (char) bis.read();
            listBIS.add(c);
        }
        listBIS.forEach(System.out::print);
    }
Сам файл MyFile.txt
Допустим
у
нас
есть
файл
с
такой вот строкой

Переписали существуюший без вопросов
I know, maybe English is better for it
But still you need to handle Russian
letters as well! Cause I'll find you and
beat your soft butt.
Что выводит в консоль:
Допустим
у
нас
есть
файл
с
такой вот строкой

Переписали существуюший без вопросов
I know, maybe English is better for it
But still you need to handle Russian
letters as well! Cause I'll find you and
beat your soft butt.
Process finished with exit code 0