首页 / JAVA / Java在文件上传中使用多线程
Java在文件上传中使用多线程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java在文件上传中使用多线程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1186字,纯文字阅读大概需要2分钟。
内容图文
服务器:
public class TCPServer {
public static void main(String[] args) {
ServerSocket server= null;
try {
server = new ServerSocket(8888);
} catch (IOException e) {
e.printStackTrace();
}
/**让服务器一直处于监听状态
* */
while (true) {
/**使用多线程来提高程序效率
* 当有一个客户端上传文件的时候就创建一个线程来处理
* */
ServerSocket finalServer = server;
new Thread(() -> {
Socket socket=null;
OutputStream os=null;
FileOutputStream fos=null;
try {
socket= finalServer.accept();
InputStream is=socket.getInputStream();
File file=new File("E:\\service");
/**判断是否存在目标文件夹
* */
if(!file.exists()){
file.mkdirs();
}
fos=new FileOutputStream(file+"\\1.txt");
int len=0;
byte[] bytes=new byte[1024];
while ((len=is.read(bytes))!=-1){
fos.write(bytes,0,len);
}
os= socket.getOutputStream();
os.write("上传成功".getBytes());
} catch (IOException e) {
e.printStackTrace();
}finally {
if(socket!=null&&fos!=null&&os!=null){
try {
fos.close();
os.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
}
}
}
注意:由于使用new Thread(() -> {})的方式来实现多线程,匿名内部类中重写的是接口中的public abstract void run();函数,而该函数没有抛出异常所以需要使用try…catch捕获。这里不需要释放ServerSocket资源
内容总结
以上是互联网集市为您收集整理的Java在文件上传中使用多线程全部内容,希望文章能够帮你解决Java在文件上传中使用多线程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。