首页 > 编程语言 > 详细

javaweb 上传文件使用NIO进行读写

时间:2020-03-10 18:03:36      阅读:279      评论:0      收藏:0      [点我收藏+]

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.UUID;

@Controller
public class MailSend {

@Value("${uploadpath:}")
private String uploadpath;

@RequestMapping("/uploadfile")
@ResponseBody
public Object uploadfile(@RequestParam("file")MultipartFile file){
FileInputStream fis = null;
FileOutputStream fos = null;

try {
fis = (FileInputStream) file.getInputStream();
fos = new FileOutputStream(new File(uploadpath + "\\" + UUID.randomUUID().toString() +"_" +file.getName()));

FileChannel inChannel = fis.getChannel();
FileChannel outChannel = fos.getChannel();

int capacity = 1024;
ByteBuffer buffer = ByteBuffer.allocate(capacity);
int len = -1;
while( (len=inChannel.read(buffer))!=-1 ){
buffer.flip();

int length = 0;
while (( length=outChannel.write(buffer) )!=0){

}
buffer.clear();
}
inChannel.close();
outChannel.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}

}
————————————————
版权声明:本文为CSDN博主「临窗,听雨声」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yali_aini/article/details/91543519

javaweb 上传文件使用NIO进行读写

原文:https://www.cnblogs.com/niudaxianren/p/12456362.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!