读入大文件并在java中创建校验和

时间:2014-09-06 12:26:01

标签: java

我想创建大文件的哈希校验和。不幸的是,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);
            }

谢谢!

1 个答案:

答案 0 :(得分:0)

您想使用MappedByteBuffer。这将允许您将整个文件视为在内存中,但保留基础类以解决何时加载位以及何时删除它们。它在CPU时间和内存开销方面都非常有效。