FileOutputStream文件流的断点续传

使用场景:

在上传文件的过程中,如果服务器或者客户端断开连接后再重新连接,如何判断文件是否需要再次下载,或者以防文件已存在但因未下载完成而损坏,只能先删除后再次下载。如果文件比较大呢?

操作方法:

1、创建一个自定义名字的临时文件

2、使用文件流能够续传的输出方式写出到临时文件中

3、判断临时文件与源文件大小是否一致,如果一致重命名为指定文件,同时删除临时文件

操作步骤:

1、创建自定义的临时文件

File tempFile = new File(sourceFile, sourceId+"temp.temp");

2、获取源文件的大小,需要服务器端将文件的大小写入到responseBody中

 GetMethod get = new GetMethod(urlStr);

 Header responseHeader = get.getResponseHeader("size");
                if(responseHeader != null){
                    String size = responseHeader.getValue();
                    sizeInt = Long.parseLong(size);
                }

3、创建目录文件夹

 if(!sourceFile.exists()){
       sourceFile.mkdirs();
  }

4、写到临时文件中

FileOutputStream output = new FileOutputStream(tempFile,true);

5、判断是否下载完毕

 if(tempFile.length() >= sizeInt){ 
            tempFile.renameTo(new File(sourceFile,fileNameB));
            tempFile.delete();
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值