程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 使用TCP完成文本文件上傳java實現

使用TCP完成文本文件上傳java實現

編輯:關於JAVA
 

使用TCP完成文本文件上傳,要求客戶端讀取文本文件使用字符流,
服務端把文本保存也需要使用字符流寫出去


 TCP服務端

  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStream;
  8. import java.io.OutputStreamWriter;
  9. import java.net.ServerSocket;
  10. import java.net.Socket;
  11. public class TCPServer4 {
  12. public static void main(String[] args) throws IOException {
  13. //創建服務端對象
  14. ServerSocket ss = new ServerSocket(8090) ;
  15. //獲取客戶端對象
  16. Socket s = ss.accept() ;
  17. //獲取字節輸入流對象
  18. InputStream in = s.getInputStream() ;
  19. //創建字符輸入流緩沖區
  20. BufferedReader br = new BufferedReader(new InputStreamReader(in)) ;
  21. //創建字符輸出流緩沖區
  22. BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(“E:/tcp.txt”)));
  23. String line = null ;
  24. while((line = br.readLine())!=null) {
  25. bw.write(line);
  26. //換行
  27. bw.newLine();
  28. //刷新緩沖區,將數據寫到文件中
  29. bw.flush();
  30. }
  31.  
  32. //存儲文件完成,向客戶端發送消息
  33. OutputStream os = s.getOutputStream() ;
  34. os.write(“上傳完成……”.getBytes());
  35. //關閉流
  36. bw.close();
  37. os.close();
  38. }
  39. }

 

客戶端:

  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.OutputStream;
  7. import java.io.OutputStreamWriter;
  8. import java.net.Socket;
  9. public class TCPClient4 {
  10. public static void main(String[] args) throws IOException {
  11. //創建客戶端對象
  12. Socket s = new Socket(“127.0.0.1″,8090);
  13. //創建字節輸出流對象
  14. OutputStream os = s.getOutputStream() ;
  15. //定義輸出轉換,把字符輸出流轉換成字節輸出流
  16. OutputStreamWriter osw = new OutputStreamWriter(os) ;
  17. //為高效寫出數據,定義字符輸出緩沖區對象
  18. BufferedWriter bw = new BufferedWriter(osw) ;
  19. //創建字符輸入緩沖區對象
  20. BufferedReader br = new BufferedReader(new FileReader(“1.txt”));
  21. String line = null ;
  22. while((line = br.readLine())!=null){
  23. bw.write(line);
  24. bw.newLine();
  25. bw.flush();
  26. }
  27. //關閉輸出流,給服務端發送數據發送結束的標記
  28. s.shutdownOutput(); 
  29. //======文件上傳完畢=========
  30. //接收服務器返回的消息
  31. InputStream in = s.getInputStream() ;
  32. byte[] buf = new byte[1024] ;
  33. int len = in.read(buf);
  34. System.out.println(new String(buf,0,len));
  35. br.close();
  36. s.close();
  37. }
  38. }
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved