日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文件上传案例优化(文件命名循环接收多线程提高效率)

發布時間:2024/4/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件上传案例优化(文件命名循环接收多线程提高效率) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.learn.demo03.FileUpload;import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket;/*文件上傳案例的客戶端:讀取本地文件,上傳到服務器,讀取服務器回寫的數據明確:數據源:c:\\1.jpg目的地:服務器實現步驟:1.創建一個本地字節輸入流FileInputStream對象,構造方法中綁定要讀取的數據源2.創建一個客戶端Socket對象,構造方法中綁定服務器的IP地址和端口號3.使用Socket中的方法getOutputStream,獲取網絡字節輸出流OutputStream對象4.使用本地字節輸入流FileInputStream對象中的方法read,讀取本地文件5.使用網絡字節輸出流OutputStream對象中的方法write,把讀取到的文件上傳到服務器6.使用Socket中的方法getInputStream,獲取網絡字節輸入流InputStream對象7.使用網絡字節輸入流InputStream對象中的方法read讀取服務回寫的數據8.釋放資源(FileInputStream,Socket)*/ public class TCPClient {public static void main(String[] args) throws IOException {//1.創建一個本地字節輸入流FileInputStream對象,構造方法中綁定要讀取的數據源FileInputStream fis = new FileInputStream("c:\\1.jpg");//2.創建一個客戶端Socket對象,構造方法中綁定服務器的IP地址和端口號Socket socket = new Socket("127.0.0.1",8888);//3.使用Socket中的方法getOutputStream,獲取網絡字節輸出流OutputStream對象OutputStream os = socket.getOutputStream();//4.使用本地字節輸入流FileInputStream對象中的方法read,讀取本地文件int len = 0;byte[] bytes = new byte[1024];while((len = fis.read(bytes))!=-1){//5.使用網絡字節輸出流OutputStream對象中的方法write,把讀取到的文件上傳到服務器os.write(bytes,0,len);}/*解決:上傳完文件,給服務器寫一個結束標記void shutdownOutput() 禁用此套接字的輸出流。對于 TCP 套接字,任何以前寫入的數據都將被發送,并且后跟 TCP 的正常連接終止序列。*/socket.shutdownOutput();//6.使用Socket中的方法getInputStream,獲取網絡字節輸入流InputStream對象InputStream is = socket.getInputStream();//7.使用網絡字節輸入流InputStream對象中的方法read讀取服務回寫的數據while((len = is.read(bytes))!=-1){System.out.println(new String(bytes,0,len));}//8.釋放資源(FileInputStream,Socket)fis.close();socket.close();} } package com.learn.demo03.FileUpload;import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Random;/*文件上傳案例服務器端:讀取客戶端上傳的文件,保存到服務器的硬盤,給客戶端回寫"上傳成功"明確:數據源:客戶端上傳的文件目的地:服務器的硬盤 d:\\upload\\1.jpg實現步驟:1.創建一個服務器ServerSocket對象,和系統要指定的端口號2.使用ServerSocket對象中的方法accept,獲取到請求的客戶端Socket對象3.使用Socket對象中的方法getInputStream,獲取到網絡字節輸入流InputStream對象4.判斷d:\\upload文件夾是否存在,不存在則創建5.創建一個本地字節輸出流FileOutputStream對象,構造方法中綁定要輸出的目的地6.使用網絡字節輸入流InputStream對象中的方法read,讀取客戶端上傳的文件7.使用本地字節輸出流FileOutputStream對象中的方法write,把讀取到的文件保存到服務器的硬盤上8.使用Socket對象中的方法getOutputStream,獲取到網絡字節輸出流OutputStream對象9.使用網絡字節輸出流OutputStream對象中的方法write,給客戶端回寫"上傳成功"10.釋放資源(FileOutputStream,Socket,ServerSocket)*/ public class TCPServer {public static void main(String[] args) throws IOException {//1.創建一個服務器ServerSocket對象,和系統要指定的端口號ServerSocket server = new ServerSocket(8888);//2.使用ServerSocket對象中的方法accept,獲取到請求的客戶端Socket對象/*讓服務器一直處于監聽狀態(死循環accept方法)有一個客戶端上傳文件,就保存一個文件*/while(true){Socket socket = server.accept();/*使用多線程技術,提高程序的效率有一個客戶端上傳文件,就開啟一個線程,完成文件的上傳*/new Thread(new Runnable() {//完成文件的上傳@Overridepublic void run() {try {//3.使用Socket對象中的方法getInputStream,獲取到網絡字節輸入流InputStream對象InputStream is = socket.getInputStream();//4.判斷d:\\upload文件夾是否存在,不存在則創建File file = new File("d:\\upload");if(!file.exists()){file.mkdirs();}/*自定義一個文件的命名規則:防止同名的文件被覆蓋規則:域名+毫秒值+隨機數*/String fileName = "learn"+System.currentTimeMillis()+new Random().nextInt(999999)+".jpg";//5.創建一個本地字節輸出流FileOutputStream對象,構造方法中綁定要輸出的目的地//FileOutputStream fos = new FileOutputStream(file+"\\1.jpg");FileOutputStream fos = new FileOutputStream(file+"\\"+fileName);//6.使用網絡字節輸入流InputStream對象中的方法read,讀取客戶端上傳的文件int len =0;byte[] bytes = new byte[1024];while((len = is.read(bytes))!=-1){//7.使用本地字節輸出流FileOutputStream對象中的方法write,把讀取到的文件保存到服務器的硬盤上fos.write(bytes,0,len);}//8.使用Socket對象中的方法getOutputStream,獲取到網絡字節輸出流OutputStream對象//9.使用網絡字節輸出流OutputStream對象中的方法write,給客戶端回寫"上傳成功"socket.getOutputStream().write("上傳成功".getBytes());//10.釋放資源(FileOutputStream,Socket,ServerSocket)fos.close();socket.close();}catch (IOException e){System.out.println(e);}}}).start();}//服務器就不用關閉//server.close();} }

?

總結

以上是生活随笔為你收集整理的文件上传案例优化(文件命名循环接收多线程提高效率)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久性爱视频网站 | 成人免费一区二区三区 | 顶级嫩模啪啪呻吟不断好爽 | 99久久精品一区 | www.热久久 | www日| 精品99久久久久成人网站免费 | 亚洲啪啪网 | 97超碰站| 国产一区二区在线电影 | www一起操 | 东方成人av在线 | 国产看片网站 | 日韩av中文在线观看 | 亚洲精品 日韩无码 | 手机看片1024久久 | 免看一级片| 中文字幕第一页在线 | av我不卡| 日韩精品成人在线 | 欧美大片在线免费观看 | 一色综合| 鲁啊鲁在线视频 | 啪网址 | 私人午夜影院 | 摸摸摸bbb毛毛毛片 午夜爽爽影院 | 97国产一区 | 欧美精品99久久 | 正在播放av| 蜜桃在线一区 | 久久久久久国产精品三区 | 波多野结衣二区 | 91精品欧美 | 国产三级在线观看 | 琪琪色18 | 亚洲中文一区二区三区 | 在线观看成人动漫 | 麻豆传媒网| 欧美综合国产 | 欧美极品一区二区 | 亚洲av无码乱码国产精品 | 欧美无砖区 | 中文字幕爱爱 | 亚洲视频在线观看 | 国产二区免费 | 一区二区手机在线 | 国产免费三片 | 91亚洲精品乱码久久久久久蜜桃 | 在线五月天 | 爱爱91| 亚洲av色区一区二区三区 | 国产夫绿帽单男3p精品视频 | 精品第一页 | 欧美怡红院| 四月婷婷 | 亚洲综合二区 | 韩日视频一区 | 久久伊人亚洲 | 亚洲一区精品在线观看 | 成人四色| 久久综合成人 | 国产精品jizz在线观看无码 | jizz在线免费观看 | 梦梦电影免费高清在线观看 | 四虎影视免费永久观看在线 | 亚洲AV无码阿娇国产精品 | 国产一区二区三区亚洲 | 欧美色图网站 | 涩涩视频在线观看免费 | 久久99精品波多结衣一区 | 黄色福利网站 | 荒岛淫众女h文小说 | 国产污视频在线播放 | 日本加勒比一区二区 | 久久盗摄| 久久久www成人免费毛片 | 国产美女www | 日韩精品视频播放 | 成人快手免费看片 | 天天干夜夜爽 | 日韩在线1 | 天天爱天天舔 | 成人免费无码大片a毛片 | 理论片高清免费理伦片 | 精品毛片一区二区三区 | 夜夜摸视频网 | 日韩精品久久久久久久电影99爱 | 性一交一乱一乱一视频 | 国产精品亚洲一区二区三区在线观看 | 国产老肥熟 | 69av在线播放 | 日韩黄色av | 五月激情综合 | 黄色成人免费网站 | 中文字幕一区二区三区人妻在线视频 | 51久久久 | 性生活视频软件 | 国产精品扒开腿做爽爽爽男男 | 国产激情啪啪 |