Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaNIO-如何有效地解析包含ascii和二进制数据的文件?_Java_Nio - Fatal编程技术网

JavaNIO-如何有效地解析包含ascii和二进制数据的文件?

JavaNIO-如何有效地解析包含ascii和二进制数据的文件?,java,nio,Java,Nio,我有一些看起来像这样的数据文件: text header "lots of binary data hear" /header more text header "more binary data" /header .... 大多数文件的大小约为1-5MB。我不太可能处理任何大于30MB的文件 我对JavaNIO相当陌生,API对我来说有点像丛林。有谁能给我一些建议,告诉我应该如何解析这样的文件 是否可能有多个线程使用来自文件不同部分的数据?文件将被打开以供读取 您可以FileChannel.

我有一些看起来像这样的数据文件:

text
header
"lots of binary data hear"
/header
more text
header
"more binary data"
/header
....
大多数文件的大小约为1-5MB。我不太可能处理任何大于30MB的文件

我对JavaNIO相当陌生,API对我来说有点像丛林。有谁能给我一些建议,告诉我应该如何解析这样的文件


是否可能有多个线程使用来自文件不同部分的数据?文件将被打开以供读取

您可以
FileChannel.map()
,并像读取数组一样读取它。

重新设计文件。这是一个糟糕的设计。

问题是,您如何知道自己正在读取文本或二进制数据。若文本和二进制区域(如标记或定义的块大小)之间有明确的界限,那个么我怀疑它能够帮助您解决这个问题。Preon确实支持以有用的方式读取文本和二进制数据。由于我非常确定二进制数据代表其他内容,因此您也可以将二进制位解码为比数组更有用的数据结构。

您可以控制文件格式吗?这只是将文件放入内存。ByteBuffer的方法与FileChannel.map()的结果几乎相同。