1、FileOutputStream write与原文件md5不一致,文件变大了

原因写入的时候字符问题代码如下(注springmvc的错误原因和这里一样):

 

  public static void main(String[] args) throws IOException {
        String   fileName = "aaa.jar";
        System.out.println("start");
//        Files.copy(Paths.get(path,fileName),Paths.get("d://test//b.jar"));  //这种写法正常
        Path path = Paths.get(AppController.path, fileName);
        Path path1 = Paths.get("d://test//g.jar");

        File file = path.toFile();
        File file1 = path1.toFile();

        FileInputStream fileInputStream = new FileInputStream(file);
        OutputStream outputStream = new FileOutputStream(file1);
//        byte[] buff = new byte[fileInputStream.available()];  //原来的写法
// 下面是改正后的写法(绿色注释掉的错误写法)
        byte[] bts = new byte[1024*1024];
        int len=-1;
        while ((len=fileInputStream.read(bts)) != -1) {
            outputStream.write(bts, 0, len);
        }

//        outputStream.write(buff,0,buff.length);  //原来的写法
        outputStream.flush();
        outputStream.close();
        fileInputStream.close();
        System.out.println("over");
    }

 2、 SpringMVC的 ResponseEntity 下载的文件与原文件md5值不一样原因是在下载服务器的服务端设置了

headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); 导致的。解决办法:去掉该代码即可
posted on 2020-07-02 13:31  张释文  阅读(971)  评论(1编辑  收藏  举报