Если вы не хотите использовать временные данные (для обращения к файлу), вам следует использовать RandomAccessFile
class.
В другом случае вы можете прочитать и сохранить весь файл в памяти, а затем перевернуть его содержимое.
List<String> data = new LinkedList<String>();
Если вам нужны строки в обратном порядке, введите:
out.print(ch+"<br/>");
сделать
data.add(ch);
И после прочтения всего файла вы можете использовать
Collections.reverse(data);
Если вам нужно, чтобы все символы были в обратном порядке, вы можете использовать тип Character
вместо String
и читать не всю строку, а только один символ.
После этого просто измените ваши данные.
P.S. Для печати (например, в системный поток вывода) вы должны выполнять итерации по каждому элементу в коллекции.
for (String line : data) {
out.println(line);
}
Если вы используете просто out.print(data)
, это вызовет метод data.toString()
и распечатает его результат. Стандартная реализация toString()
не будет работать так, как вы ожидали. Он вернет что-то вроде типа объекта и номера.