zoukankan      html  css  js  c++  java
  • 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); 导致的。解决办法:去掉该代码即可
  • 相关阅读:
    Python正则表达式指南(转)
    二进制文件与文本文件的区分(转)
    Linux上的下载软件uGet
    Ubuntu 12.04安装Google Chrome(转)
    单元测试中的黑盒测试的重要性(转)
    尾递归(转)
    chrome使用技巧(转)
    LRU算法的Python实现
    MySQL单列索引和组合索引的区别介绍(转)
    Python性能优化(转)
  • 原文地址:https://www.cnblogs.com/zhangshiwen/p/13224175.html
Copyright © 2011-2022 走看看