在java中快速解析文本文件

时间:2012-06-19 12:04:15

标签: java parsing file-io 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
.
.
.

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

1 个答案:

答案 0 :(得分:5)

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


这里有一个以高吞吐量和低延迟读取和写入二进制数据的例子。

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

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

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

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