Я новичок в Java, и я написал парсер, который работает на RandomAccessFile
(формат файла требует случайного позиционирования). Для тестирования JUnit я загружаю в синтаксический анализатор различные образцы входных файлов.
Теперь я подумал, что смогу написать более простые тесты JUnit после того, как изменю синтаксический анализатор на чтение из InputStream
(который будет создан тестом JUnit).
Но чтобы иметь возможность выполнить вариант использования без тестирования, мне пришлось бы создать (или обновить) InputStream
, чтобы прочитать, на что в настоящее время указывает RandomAccessFile
. Возможно ли это? Конечно, решение должно быть эффективным и элегантным.
RandomAcessFile
, код для чтения из такого файла или (еще не существующий) код для чтения изInputStream
? Или что именно вы ищете? - person U. Windl   schedule 22.05.2018SeekableByteChannel
сChannels.newInputStream()
звучит как возможное решение, но без буферизации. - person U. Windl   schedule 22.05.2018InputStream
(BufferedInputStream
), я задаюсь вопросом, будет ли проще всего реализовать новый класс, делегирующийRandomAccessFile
, добавляяsetPosition()
(и аннулирующий буфер при изменении позиции в случаеBufferedInputStream
). - person U. Windl   schedule 22.05.2018