解析我有一些文本文件,它是在一個固定的,重複的格式,如:快速文本文件中的Java
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中。我想知道的是解析這種文本文件的最快方法。如果對性能有幫助,我可以更改文本文件的輸出格式,因爲這裏唯一的要求是解析速度。 我也可以使用外部庫。
解析我有一些文本文件,它是在一個固定的,重複的格式,如:快速文本文件中的Java
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中。我想知道的是解析這種文本文件的最快方法。如果對性能有幫助,我可以更改文本文件的輸出格式,因爲這裏唯一的要求是解析速度。 我也可以使用外部庫。
解析的最快速度是使用二進制格式。我認爲你使用本地字節順序,你應該能夠讀取這類數據每秒約2000萬條目。
這裏是一個以高吞吐量和低延遲讀寫二進制數據的例子。
https://github.com/peter-lawrey/Java-Chronicle
這種格式的設計是讀因爲它是寫(與流程之間不到一微秒的延遲)
因爲我懷疑你需要你可以用比這更簡單的格式是高吞吐量。 ;)
順便說一句:該庫支持無內存讀取和寫入文本,如long
和double
values目錄到/從內存映射的ByteBuffer。因此,它可以用作快速文本記錄器,每秒支持超過一百萬個真實文本消息。
使用掃描儀對你來說太慢了? – Thihara
@Thihara是的,事實上我正在使用掃描儀本身。對於文本文件的大小相對較小的情況,比如3-4000行,性能還是不錯的,但是當我得到30-40000行這樣的大文件時,性能不是那麼好,而且我會喜歡改善。 –