我想创建大文件的哈希校验和。不幸的是,Netbeans显示错误: "线程中的异常"线程-3" java.lang.OutOfMemoryError:所需的数组大小太大"
所以我认为," byte [] byteStream = Files.readAllBytes(path);"不适用于此。
你能告诉我达到目标的最佳途径是什么?
到目前为止我的代码:
for (Path path : ArrayOfFilePathes) {
byte[] byteStream = Files.readAllBytes( path );
if ( GUI.bMd5Selected == true ) {
checksume = "MD5";
string = DigestUtils.md5Hex( byteStream );
}else{
checksume = "Sha256";
string = DigestUtils.sha256Hex(byteStream);
}
谢谢!
答案 0 :(得分:0)
您想使用MappedByteBuffer
。这将允许您将整个文件视为在内存中,但保留基础类以解决何时加载位以及何时删除它们。它在CPU时间和内存开销方面都非常有效。