java-Socket文件传输
生活随笔
收集整理的這篇文章主要介紹了
java-Socket文件传输
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Socket文件傳輸
//發(fā)送文件System.out.println("啟動(dòng)服務(wù)器");//1.套接字準(zhǔn)備連接主機(jī),并向?qū)?yīng)的端口發(fā)送數(shù)據(jù)Socket s = new Socket("localhost", 8888);//2.獲取輸出流,準(zhǔn)備發(fā)送數(shù)據(jù)OutputStream os = s.getOutputStream();//3.字節(jié)緩沖流BufferedOutputStream bos = new BufferedOutputStream(os);//4.準(zhǔn)備文件String str = "G:/douban.html";File file = new File(str);//5. 讀取到內(nèi)存,使用字節(jié)緩沖流FileInputStream fis = new FileInputStream(file);BufferedInputStream bis = new BufferedInputStream(fis);/** 6.讀寫(xiě)過(guò)程*/byte[] b = new byte[1024];int i = -1;while((i=bis.read(b)) != -1){bos.write(b, 0, i);}System.out.println("文件發(fā)送完畢!");//7.關(guān)流bis.close();fis.close();bos.close();os.close();注意:必須關(guān)閉流。發(fā)送文件,本質(zhì)上是:從磁盤(pán)中寫(xiě)入到內(nèi)存中,再?gòu)膬?nèi)存中寫(xiě)出到服務(wù)器。
//接收文件System.out.println("準(zhǔn)備好接收了....");//1.服務(wù)端,監(jiān)聽(tīng)本機(jī)端口8888ServerSocket ss = new ServerSocket(8888);//2.套接字對(duì)象Socket accept = ss.accept();//3.接收數(shù)據(jù)InputStream is = accept.getInputStream();BufferedInputStream bis = new BufferedInputStream(is);//4.創(chuàng)建文件夾接收,使用字符輸出流File file = new File("G:/java/douban.html");FileOutputStream fos = new FileOutputStream(file);BufferedOutputStream bos = new BufferedOutputStream(fos);//5.讀寫(xiě)過(guò)程byte[] b = new byte[1024];int len = -1;while((len=bis.read(b))!=-1){bos.write(b, 0, len);}System.out.println("文件接收完畢!");//6.關(guān)流bos.close();fos.close();bis.close();is.close();注意:必須關(guān)流。接收文件,本質(zhì)上是:從服務(wù)器寫(xiě)入到內(nèi)存中,再?gòu)膬?nèi)存中寫(xiě)出到磁盤(pán)。
總結(jié)
以上是生活随笔為你收集整理的java-Socket文件传输的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OPCUA标准java实现 Milo库
- 下一篇: 二极管三极管基础PN结详解