文件上传:
代码1:
InputStream is = mFile.getInputStream();//mFile为MultipartFile实例
File destFile = new File(savePath, newName);
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[400];
int length = 0;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
is.close();
os.close();
代码2:
InputStream is = mFile.getInputStream();//mFile为MultipartFile实例
File destFile = new File(savePath, newName);
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[400];
int length = 0;
BufferedInputStream bis = new BufferedInputStream(is);//添加缓存
BufferedOutputStream bos = new BufferedOutputStream(os);
while ((length = bis.read(buffer)) > 0) {
bos.write(buffer, 0, length);
}
is.close();
os.close();
第一种写法也是一块一块的读入、输出的,我以为就相当于是进行了缓冲;采用第二种写法速度明显提高,哪位大神可以解释一下两种方法的运行原理,在此谢过!
比喻一下
第一种:A 到 B,一路都是骑单车,不断往返A和B
第二种:A 到 B,在A和B之间,引入了C,A到C依然是骑单车,而C到B,就不是骑单车了,而是开小车,总体效率就高了