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); 导致的。解决办法:去掉该代码即可
  • 相关阅读:
    Mac下搭建SVN服务器
    iOS的扩展类,扩展属性
    关于TableViewCell高度自适应问题的整理
    关于适配的一点考虑
    Visual format language
    css命名定义
    定位之初解
    定位以及relative和absolute的结合
    float的一点想法
    javascript的学习路子
  • 原文地址:https://www.cnblogs.com/zhangshiwen/p/13224175.html
Copyright © 2011-2022 走看看