Посимвольный вывод текста из файла на java

недавно начал программировать. Первый язык программирования java. Столкнулся с проблемой при работе со строками. Легко могу реализовать выгрузку текста из файла и вывод слов, а как реализовать посимвольный вывод не знаю. Также возникла проблема в том, как определять перенос строки на java. Пытаюсь также определить позицию символа в строке, но безуспешно. Буду очень благодарен, если объясните как это реализовать.


Ответы (2 шт):

Автор решения: Agzam4

Вывод посимвольно:

char[] cs = string.toCharArray();
for(char c : cs)
System.out.print(c);

Определить позицию символа:

indexOf() - у класса String

→ Ссылка
Автор решения: Anastasiya

Вы можете использовать классы из пакета io - OutputStream/InputStream В нем куча классов как для чтения посимвольно, побайтово, в буфер, в конец, в огурец)

Если кратко, - OutputStream - это выходной поток: на консоль, в файл, а InputStream наоборот. В java все стримы построены по паттерну декоратор, тоесть в аргументы одного стрима можно засовывать другой стрим (пример ниже)

Конкретно файла на java можем сделать что-нибудь такое:

try (Reader reader = new InputStreamReader(new FileReader(pathToFile))) {
    while((chr=in.read()) != -1) {
        System.out.print((char) chr);
    }
} catch (FileNotFoundEx | IOException e) { e.printStackTrace(); }

Для перевода строки и всяких пробелов существуют различные управляющие символы - https://ru.wikipedia.org/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B8%D0%B5_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B - ссылка на википедию.

Например:

System.out.println("Этот символ переводит на новую строку --->\nЭта запись уже на новой строке");
→ Ссылка