上传文件
public static final int COUNT = 5;
public static final int BUFFER_SIZE = 1024 * 8;
public File mergeFile(File mergeFile, MultipartFile partFile, long startPosition) {
RandomAccessFile randomAccessFile;
try {
randomAccessFile = new RandomAccessFile(mergeFile, "rw");
randomAccessFile.seek(startPosition);
byte[] buffer = new byte[BUFFER_SIZE];
InputStream input = partFile.getInputStream();
BufferedInputStream in = new BufferedInputStream(input, BUFFER_SIZE);
int len;
try {
while ((len = in.read(buffer, 0, BUFFER_SIZE)) != -1) {
randomAccessFile.write(buffer, 0, len);
}
} finally {
in.close();
input.close();
randomAccessFile.close();
}
return mergeFile;
} catch (Exception e) {
return null;
}
}
private static File newPartFileWithLength(File originFile, long startPosition,
long fileLength, String partFileDir,
String fileName) {
String name = partFileDir + File.separator + fileName;
File file = new File(name);
RandomAccessFile randomAccessFile;
try {
randomAccessFile = new RandomAccessFile(originFile, "rw");
randomAccessFile.seek(startPosition);
byte[] buffer = new byte[BUFFER_SIZE];
FileOutputStream output = new FileOutputStream(file);
BufferedOutputStream out = new BufferedOutputStream(output, BUFFER_SIZE);
int len;
try {
while ((len = randomAccessFile.read(buffer, 0, Math.min((int) (fileLength - file.length()), BUFFER_SIZE))) != -1
&& file.length() < fileLength) {
out.write(buffer, 0, len);
out.flush();
}
} finally {
IOUtils.closeQuietly(out);
IOUtils.closeQuietly(output);
IOUtils.closeQuietly(randomAccessFile);
}
return file;
} catch (Exception e) {
return null;
}
}