Поиск ByteArrayInputStream с использованием java.io

Как я могу найти (изменить положение) ByteArrayInputStream ( java.io )? Это что-то настолько очевидное, но я не могу нигде найти способ для этого ( mark / reset недостаточно, мне нужно установить положение в любом месте на InputStream ).

Если это невозможно сделать с помощью java.io , и я должен переключить в java.nio и используйте ByteBuffer , как я могу получить что-то похожее на DataOutputStream , обертывающее ByteArrayOutputStream с использованием java.nio ? Я не нахожу никакого буфера с автоматическим изменением размера.

РЕДАКТИРОВАТЬ: Я нашел один способ добиться того, что я пытаюсь сделать, но он немного беспорядочный. ImageIO.createImageInputStream создает ImageInputStream , что именно то, что я хочу (могу искать и читать примитивы). Однако использование ByteArrayInputStream возвращает FileCacheImageInputStream , что в основном означает, что он копирует массив байтов в файл только для поиска.

Я впервые пытаюсь использовать Java IO. классы, и это было полностью отрицательно. В нем отсутствуют некоторые фундаментальные функции (IMO), и у него есть много способов сделать то же самое (например, для чтения примитивов из файла вы можете использовать RandomAccessFile , DataInputStream + FileInputStream , FileImageInputStream , FileChannel + ByteBuffer и, возможно, даже больше).

10
задан asdfghjkl 25 September 2010 в 07:41
поделиться