zoukankan      html  css  js  c++  java
  • java上传并下载以及解压zip文件有时会报文件被损坏错误分析以及解决

    情景描述:

      1.将本地数据备份成zip文件;

      2.将备份的zip文件通过sftp上传到文件服务器;

      3.将文件服务器上的zip文件下载到运行服务器;

      4.将下载的zip文件解压到本地(文件大小超过50KB时报文件被损坏);

    分析:

      既然报文件被损坏,肯定就是因为下载文件时文件没有读取完全。

    程序肯定不会骗人,但是当时在解决这个问题的时候,就是不愿意相信是下载的问题,因为文件确实是下载下来了,而且流也关闭了,也提示下载成功了,所以就去怀疑是程序存在的问题,这是很不应该的。

    问题代码:

             byte[] b = new byte[10*1024];
                while(download.getInputStream().read(b,0,10240) != -1){
                  fos.write(b,0,10240);
                }

    结论:

      对于影像、流等应该按照字节来读取,而不应该一下读取多个字节,这样容易少读取文件,造成文件损坏。

  • 相关阅读:
    flask上下管理文相关
    flask上下管理文相关
    flask上下文管理相关-LocalStack 对象维护栈
    flask上下文管理相关
    flask-wtforms组件
    flask数据库连接池DBUtils
    flask蓝图blueprint是什么
    flask不得不知的基础
    产品的四个主要的要素
    C# 函数式编程:LINQ
  • 原文地址:https://www.cnblogs.com/yanduanduan/p/6046235.html
Copyright © 2011-2022 走看看