在java中快速解析文本文件

Par*_*oel 0 java file-io parsing text-files

我有许多文本文件,它们是固定的,重复的格式,如:

Q 32,0 16
q 27
b 21
I 0
P 1
d 0
m 31,0
Q 48,0 16
q 27
b 2
I 2
P 1
d 0
m 31,0
.
.
.
Run Code Online (Sandbox Code Playgroud)

我想用Java解析它们.我想知道的是解析这样一个文本文件的最快方法.如果这有助于提高性能,我可以更改文本文件的输出格式,因为这里唯一的要求是解析速度.我也可以使用外部库.

Pet*_*rey 5

解析的最快速度是使用二进制格式.我想你使用本机字节顺序,你应该能够读取这类数据每秒大约2000万条目.


这里以高吞吐量和低延迟读取和写入二进制数据的示例.

https://github.com/peter-lawrey/Java-Chronicle

此格式设计为在写入时读取(进程之间的延迟小于1微秒)

您可以使用比此更简单的格式,因为我怀疑您需要的是高吞吐量.;)

顺便说一句:该库支持无GC读取和写入文本,例如longdouble值目录到/从内存映射的ByteBuffer.因此,它可以用作快速文本记录器,每秒支持超过一百万条真实文本消息.