• FileOutputStream write与原文件md5不一致,文件变大了 或者 SpringMVC的 ResponseEntity 下载的文件与原文件md5值不一样


    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); 导致的。解决办法:去掉该代码即可
  • 相关阅读:
    java基础英语---第十九天
    java基础英语---第十六天
    java基础英语---第十七天
    java基础英语---第十四天
    java基础英语---第十五天
    java基础英语---第十三天
    设计模式
    设计模式
    设计模式
    设计模式
  • 原文地址:https://www.cnblogs.com/zhangshiwen/p/13224175.html
Copyright © 2020-2023  润新知