RandomAccessFile-подобный API для байтового массива в памяти? - PullRequest
11 голосов
/ 04 февраля 2011

Мне нужно заменить код, используя RandomAccessFile, на код, использующий байтовый буфер в памяти (например, byte[] или производные, такие как ByteArrayInputStream). Есть ли какой-нибудь API (упаковщик байтового массива?), Который имеет интерфейс, подобный RandomAccessFile, с seek() и потоковым read(), который я мог бы подключить один к одному?

Ответы [ 4 ]

9 голосов
/ 07 февраля 2011

ByteArrayInputStream может сделать это:

  • read() работает так же.
  • seek(n) можно заменить на reset(), за которым следует skip(n)
3 голосов
/ 04 февраля 2011

Могу ли я предложить Java NIO (Новый ввод / вывод) проверить это простой и небольшой учебник

0 голосов
/ 16 октября 2015

У меня была такая же проблема.RandomAccessFile имеет много финальных и нативных методов, поэтому его нельзя перегружать.

Я закончил создавать свой собственный абстрактный класс SeekableInputStream, украдя его без чтения: https://github.com/samtools/htsjdk/blob/master/src/java/htsjdk/samtools/seekablestream/SeekableStream.java

Я определил SeekableFileInputStream, который используетRandomAccessFile.

Я определил SeekableByteArrayInputStream, который легко определить.Этот класс также может получить любой InputStream и преобразовать его в байтовый массив, так что это своего рода кэшированный поток.

0 голосов
/ 04 февраля 2011

У меня есть один из них - я загрузил его на http://home.arcor.de/joriki/seekable-byte-array.zip - надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...