我需要编写大量文件(超过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,但我试图保持较短的可读行。
所以请提出任何建议!
答案 0 :(得分:2)
对于庞大的文件,任何文本数据格式,特别是JSON,YAML或XML等标记数据,都不是一个很好的解决方案。
我可以建议使用通用二进制格式,例如Google Protocol Buffers或ASN1。
Google Protocol Buffers很容易上手。
当然,如果您只需要Java-To-Java数据传输,则可以使用java开箱即用的序列化。
答案 1 :(得分:1)
如何使用DataInputStream
和DataOutputStream
来读取/写入二进制格式的文件?
当然,您的数据必须具有固定的结构,但作为一项好处,您将获得更小的文件大小和更快的读/写。