Java NIO - Как эффективно проанализировать файл, содержащий как ASCII, так и двоичные данные? - PullRequest
2 голосов
/ 22 июля 2010

У меня есть некоторые файлы данных, выглядящие примерно так:

text
header
"lots of binary data hear"
/header
more text
header
"more binary data"
/header
....

Большинство файлов имеют размер около 1-5 МБ. Маловероятно, что мне придется иметь дело с файлами, размер которых превышает приблизительно 30 МБ.

Я довольно новичок в Java NIO, и API выглядит для меня как джунгли. Может ли кто-нибудь дать мне какие-либо указания на то, как мне следует разбирать файл, подобный этому?

Возможно ли иметь несколько потоков, потребляющих данные из разных частей файла? Файл будет просто открыт для чтения.

Ответы [ 3 ]

2 голосов
/ 22 июля 2010

Редизайн файла.Это ужасный дизайн.

1 голос
/ 20 сентября 2010

Вопрос в том, как вы узнаете, читаете ли вы текст или двоичные данные.Если будет четкое разграничение текстовой и двоичной областей (например, маркера или определенного размера блока), то я подозреваю, что Preon сможет вам помочь.Preon действительно поддерживает чтение как текстовых, так и двоичных данных.И поскольку я почти уверен, что ваши двоичные данные представляют собой нечто иное, вы также можете декодировать двоичные биты в более полезную структуру данных, чем просто массив.

0 голосов
/ 22 июля 2010

вы можете FileChannel.map() и читать его как массив.

...