А смысл по-байтного чтения? Что бы как можно дольше читалось? Читают блоками в буфер, а в буфере уже хоть по-байтно, хоть вперед, хоть задом наперед. Но это уже в памяти и быстро
Кстати да, вы подняли хороший вопрос. Если я побайтно скопирую файл, и захочу его воссоздать с конца файла, для этого есть в java методы? В С++ есть. А вот в java… не знаю…
Это как? Что именно в С++?
В С++ есть (не помню уже точно как выглядят эти флаги и т.п.) возможность читать с конца файла и записывать с конца файла. Ну, например, я считал в стек данные из файла. Теперь хочу с ходу, без промежуточных действий записать их в другой файл из стека, но в порядке том же, как и в первом файле. Тогда и получается, что вынимая из стека байт за байтом, я записываю их как бы в обратном порядке с конца файла.
А смысл так делать для бинарного файла?
Для текстового файла чтение с конца еще понятно зачем, чтоб как утилита tail
.
Про такое куча вариантов, How to read file from end to start (in reverse order) in Java? - Stack Overflow
Вряд ли в С++ есть какая-то сильно готовая магия для этого. Может что-то с итераторами. В Джаве тоже наверно можно что-то со стримами из 8-й Джавы. Но надо еще думать, чтоб эффективно сделать, а не читать сотни мегабайт для вывода последних 10 строк.
Для записи с конца надо сначала создать файл нужного размера, а потом с конца отходить и писать. Ну и желательно не по 1 байту. Неудобно и непонятно зачем. Проще стек перевернуть )