1、Client
package cn.qi.Client; import java.io.*; import java.net.Socket; public class Client { Socket clientSocket; Client() { // 建立連接到服務器端的socket try { clientSocket = new Socket("127.0.0.1", 5000); } catch (IOException e) { e.printStackTrace(); } } public void readFileAndSent() throws IOException { OutputStream os = clientSocket.getOutputStream(); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os)); // 讀文件 String path = this.getClass().getClassLoader().getResource("./prop/text.txt").getPath(); FileReader fr = new FileReader(path); BufferedReader br = new BufferedReader(fr); String str = null; while((str = br.readLine()) != null) { System.out.println(str); // 每讀一行,寫一行 bw.write(str); // 獲取當前OS的換行符並寫入 bw.write(System.getProperty("line.separator")); bw.flush(); } // 關閉流 bw.close(); br.close(); fr.close(); clientSocket.close(); } }
2、Server
package cn.qi.Server; import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class Server { ServerSocket serverSocket; Server() { // 建立severSocket,監聽對應端口 try { serverSocket = new ServerSocket(5000); } catch (IOException e) { e.printStackTrace(); } } public void readFileAndWrite() throws IOException { // 獲取寫入路徑 String path = this.getClass().getClassLoader().getResource("./prop/").getPath(); // 服務器端寫文件 FileWriter fw = new FileWriter(path+"textSocket.txt"); BufferedWriter bw = new BufferedWriter(fw); // 寫的內容來自網絡端 while (true) { Socket socket = serverSocket.accept(); InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String str = null; while((str = br.readLine()) != null) { // 讀到了客戶端發送的信息 bw.write(str); // 獲取當前OS的換行符並寫入 bw.write(System.getProperty("line.separator")); bw.flush(); } // 關閉流 br.close(); socket.close(); } } }