【发布时间】:2014-09-06 12:26:01
【问题描述】:
我想创建大文件的哈希校验和。不幸的是,Netbeans 显示错误: “线程“Thread-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);
}
谢谢!
【问题讨论】:
-
你是对的,问题是 Files.readAllBytes。您应该使用 InputStream 读取文件并即时计算摘要。请参阅 MrTux 发布的链接中的最佳答案。
标签: java