使用场景:
在上传文件的过程中,如果服务器或者客户端断开连接后再重新连接,如何判断文件是否需要再次下载,或者以防文件已存在但因未下载完成而损坏,只能先删除后再次下载。如果文件比较大呢?
操作方法:
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();
}
本文介绍了一种在文件上传过程中,确保文件完整性和避免重复下载的方法。通过创建临时文件进行续传,判断文件是否完全下载,并在确认无误后重命名临时文件为正式文件名。此方法适用于大文件上传,避免了因网络中断导致的重复下载。
1635

被折叠的 条评论
为什么被折叠?



