使用场景:
在上传文件的过程中,如果服务器或者客户端断开连接后再重新连接,如何判断文件是否需要再次下载,或者以防文件已存在但因未下载完成而损坏,只能先删除后再次下载。如果文件比较大呢?
操作方法:
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();
}