在Android中实现大文件的分片上传 断点续传
前言
最近在公司的开发任务中,有一个大文件需要分片上传的功能要求,由于之前没有做过这个功能,看了一下网上的博客,有看到生成一些小文件再上传的,感觉不是很好,所以在这记录一下最后的代码,希望能跟大家交流一下
代码
1.将需要上传的文件分片处理
分块方法
/**
* @param offset 偏移量
* @param file 分块文件
* @param blockSize 每块的大小
* @return 这一片的数据
*/
private byte[] getBlock(long offset, File file, int blockSize) {
byte[] result = new byte[blockSize];
try (RandomAccessFile accessFile = new RandomAccessFile(file, "r")) {
accessFile.seek(offset);
int readSize = accessFile.read(result);
if (readSize == -1) {
return null;
} else if (readSize == blockSize) {
return result;
} else {
byte[] byteArray = new byte[readSize];
System.arraycopy(result, 0, byteArray, 0, readSize);
return byteArray;
}
}