我需要处理一个无法放入内存的大文件。 我的代码涉及大量读写操作,而我的文件仅包含整数。 现在我正在使用
DataInputStream in = new DataInputStream(new BufferedInputStream(
new FileInputStream(inPath)));
int i = in.readInt();
和
DataOutputStream out = new DataOutputStream(new BufferedOutputStream(
new FileOutputStream(outPath)));
dos.writeInt(i);
用于读写整数。
但是,必须不断地进行读写操作会导致性能下降。对代码进行性能分析后,我发现大部分时间都花在readInt()
和writeInt()
上。如何提高读写整数的性能?
答案 0 :(得分:0)
在处理大量数据时,文件IO通常是性能的关键瓶颈。
用于解决该问题的选项空间非常广泛:
这些想法很笼统,但您的问题也是如此。不要指望完美的解决方案,因为“完美”的解决方案是通过仔细设计能够满足您需要的总体体系结构而创建的,然后再仔细调整该设置中的所有相关设置。
答案 1 :(得分:-1)
尝试BufferedDataInputStream
。互联网上有很多工具,例如https://github.com/nom-tam-fits/nom-tam-fits/blob/master/src/main/java/nom/tam/util/BufferedDataInputStream.java