读取/写入大文件的最简单格式

时间:2018-03-15 10:30:23

标签: java file encoding

我需要编写大量文件(超过100万行)并将文件发送到另一台机器,我需要用Java BufferedReader一次读取它,一次一行。

我使用的是不受约束的Json格式,但事实证明它不是很方便 它需要太多的编码,并且需要额外的RAM / CPU 我正在寻找看起来像这样的东西:

client:id="1" name="jack" adress="House N°1\nCity N°3 \n Country 1" age="20"
client:id="2" name="alice" adress="House N°2\nCity N°5 \n Country 2" age="30"
vihecul:id="1" model="ford" hp="250" fuel="diesel"
vihecul:id="2" model="nisan" hp="190" fuel="diesel"

这样我就可以一次读取一个对象。

我知道url.encode& base64,但我试图保持较短的可读行。

所以请提出任何建议!

2 个答案:

答案 0 :(得分:2)

对于庞大的文件,任何文本数据格式,特别是JSON,YAML或XML等标记数据,都不是一个很好的解决方案。

我可以建议使用通用二进制格式,例如Google Protocol BuffersASN1

Google Protocol Buffers很容易上手。

当然,如果您只需要Java-To-Java数据传输,则可以使用java开箱即用的序列化。

答案 1 :(得分:1)

如何使用DataInputStreamDataOutputStream来读取/写入二进制格式的文件?

当然,您的数据必须具有固定的结构,但作为一项好处,您将获得更小的文件大小和更快的读/写。

相关问题