致电

时间:2017-02-20 22:22:36

标签: java hashcode

我想问一个计算空文件哈希值的问题。我需要在首次创建文件f时计算hash_value并且为空。然后,最后我将再次更新hash_value。我的代码不适用于Windows操作系统。你能告诉我怎么办吗?谢谢。

            objectFile = File(fullFilePath);
            fileInputStream = FileInputStream(objectFile);
            data = IOUtils.toString(fileInputStream, 'UTF-8');

            persistent digest;            

            if isempty(digest)
                digest = MessageDigest.getInstance('SHA-256');
            end

            hash = digest.digest(java.lang.String(data).getBytes('UTF-8'));

错误消息

    digest.digest(java.lang.String(data).getBytes('UTF-8'))
    Java exception occurred:
    java.lang.NullPointerException

        at java.security.MessageDigest.update(Unknown Source)

        at java.security.MessageDigest.digest(Unknown Source)

1 个答案:

答案 0 :(得分:-1)

看起来data为空,因此不是以下语句:

hash = digest.digest(java.lang.String(data).getBytes('UTF-8'));

你能写下这个:

if isEmpty(data)
    hash = 0;
else
    hash = digest.digest(java.lang.String(data).getBytes('UTF-8'));
end