我需要编写很大的文件(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,但我正在努力保持较短的可读性。
所以有什么建议请提出来!
发布于 2018-03-15 18:38:09
对于巨大的文件,任何文本数据格式,特别是JSON、YAML或XML等标记数据格式,都不是一个很好的解决方案。
我可以建议使用通用的二进制格式,如Google Protocol Buffers或ASN1。
Google Protocol Buffers非常容易上手。
当然,如果您只需要java到java的数据传输,您可以使用java开箱即用的序列化。
发布于 2018-03-15 18:32:24
如何使用DataInputStream
和DataOutputStream
读/写二进制格式的文件
当然,您的数据必须具有固定的结构,但作为一个好处,您将获得更小的文件大小和更快的读/写速度。
https://stackoverflow.com/questions/49297100
复制相似问题