如何在Android上快速编写大文本文件?
我使用PrintWriter,BufferedWriter和FileWriter进行了一些测试,但是没有显着的时间差异,写入大约是读取时间的三倍。
答案 0 :(得分:1)
Android,就像每个具有存储单元的其他设备一样,写入速度有限。
你唯一可以做的就是加快文件写入和阅读速度,这样可以获得更好的存储单元(这在Android设备上并不容易,只需将其打开并更换单元即可)。
因此,当涉及文件读写时,您受到硬件的限制。
答案 1 :(得分:0)
每个内存都有一个特定的块和页面大小。由于如何在Flash存储器上进行写操作,因此如果以小块编写它就很重要。
以下是在dd
中运行adb shell
的基准:
sailfish:/storage/emulated/0 $ dd if=/dev/zero of=test bs=4k count=$((32*1024))
32768+0 records in
32768+0 records out
134217728 bytes transferred in 0.521 secs (257615600 bytes/sec)
另一个1k区块:
sailfish:/storage/emulated/0 $ dd if=/dev/zero of=test bs=1k count=$((128*1024))
131072+0 records in
131072+0 records out
134217728 bytes transferred in 1.369 secs (98040707 bytes/sec)
以小块编写数据使其几乎慢了3倍。 我鼓励您对内存进行基准测试,看看是否达到了硬件限制。尝试写入缓冲区大小。如果在写入过程中你的记忆力确实较慢,那么你无能为力。
答案 2 :(得分:0)
答案 3 :(得分:0)
给Okio一个旋转。不确定它是否真的更快。