4
我有一个15亿长条目的数组。现在,我想写入磁盘并再次读回。任何人都可以帮助我有任何Java库(或自定义过程)来有效地做到这一点。Java如何写入/读取非常大的长阵列到文件中
通常,我使用FileChannel和MappedByteBuffer。但是,如果超过15亿美元,它就会超出限制。
编辑:
FileChannel ch = new RandomAccessFile(path, "r").getChannel();
MappedByteBuffer mb = ch.map(FileChannel.MapMode.READ_ONLY, 0, ch.size());
mb.order(ByteOrder.nativeOrder());
您是否安装了64位JVM?为什么你需要把它全部读入内存?你如何计划处理它,因为可能有其他解决方案来解决这个问题。 – 2012-07-30 02:23:25
你的男人是什么“超越极限”?你是不是想把它写出来?我总是读写千兆字节文件而没有问题。我肯定错过了什么。你有简单的代码吗? – MadProgrammer 2012-07-30 02:24:40
@JamesBlack,我有64位的JVM。实际上,我有非常大的数据集包含很长的数字(15亿),我不得不将它加载到内存中。必须执行一些排序类型的工作,然后我必须写回结果。 – alessandro 2012-07-30 02:26:03