Java SHA-1的读写问题

Java SHA-1的读写问题,java,Java,我正在尝试用java生成文件内容的SHA-1,然后将其读回。一个十六进制数字变了,我不知道为什么 代码: 在文件中写入 //writer: import java.util.*; import java.io.*; import java.security.*; public class Writer{ public static void main(String []args)throws Exception{ InputStream is = new Fil

我正在尝试用java生成文件内容的SHA-1,然后将其读回。一个十六进制数字变了,我不知道为什么

代码: 在文件中写入

//writer:
import java.util.*;
import java.io.*;
import java.security.*;

public class Writer{
    public static void main(String []args)throws Exception{


        InputStream  is =  new FileInputStream("input.txt");
        PrintStream os=new PrintStream(new File("out.txt"));
        byte[] buffer = new byte[1024];
        String str;
        MessageDigest complete = MessageDigest.getInstance("SHA-1");
        MessageDigest partial = MessageDigest.getInstance("SHA-1");
        int numRead;
        do {
             numRead = is.read(buffer);
             if (numRead > 0) {
                complete.update(buffer, 0, numRead);
                partial.update(buffer,0,numRead);

                byte []digest=partial.digest();
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < digest.length; i++) {

                    sb.append(String.format("%x", digest[i]));
                }
                System.out.println(sb.toString());
                str=new String(digest);
                os.println(str);
                partial.reset();
            }
        } while (numRead != -1);

        byte []digest=complete.digest();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < digest.length; i++) {

           sb.append(String.format("%x", digest[i]));
        }
       System.out.println(sb.toString());
        str=new String(digest);
        os.println(str);


       is.close();
       os.close();
    }    
}
out.txt:

ñUk%¦QÃÜH1‡³üâÒ9ÇðÔ
NÕÇAÛ÷€Yþós3@ïÏ›´YO
â¶a'æòVHéâÒ±Ž&Ô¥
&£[òÌ®(­^;˜µ #†Ãh
çÑRÍ?_"”š»Á°IEQð{
读者输出

f1556b25a651c3dc4831871ab3fce2d239c7f0d4
4ed5c741dbf78059fef3733340efcf9b16b4594f
e2b66127e6f25648e9e2d21cb18e26d4a541a17
26c213a35b3f2ccae28ad5e3b98b5a02386c368
e7d152cd3f5f22949abbc11eb049451c511df07b

你试过使用调试器吗?对于任何程序员来说,这都是一个必不可少的工具。它还将帮助您更好地理解问题,以便您可以编写一个小程序来重新创建问题。您的问题并不清楚。提供程序输出,可能会有意义。添加了示例输入输出。请退房。
f1556b25a651c3dc4831871ab3fce2d239c7f0d4
4ed5c741dbf78059fef3733340efcf9b16b4594f
e2b66127e6f25648e9e2d21cb18e26d4a541a17
26c213a35b3f2ccae28ad5e3b98b5a02386c368
e7d152cd8f5f22949abbc11eb049451c511df07b
ñUk%¦QÃÜH1‡³üâÒ9ÇðÔ
NÕÇAÛ÷€Yþós3@ïÏ›´YO
â¶a'æòVHéâÒ±Ž&Ô¥
&£[òÌ®(­^;˜µ #†Ãh
çÑRÍ?_"”š»Á°IEQð{
f1556b25a651c3dc4831871ab3fce2d239c7f0d4
4ed5c741dbf78059fef3733340efcf9b16b4594f
e2b66127e6f25648e9e2d21cb18e26d4a541a17
26c213a35b3f2ccae28ad5e3b98b5a02386c368
e7d152cd3f5f22949abbc11eb049451c511df07b