JAVA I O 通过服务器传输文件(简单的)

服务器代码

public class Server {
	static String homePath = System.getProperty("user.dir");
	static String filePath = homePath + File.separator + "bb.txt";
	public static void main(String[] args) throws IOException {
		server();
	}
	
	static void server() throws IOException {
		ServerSocket ss = new ServerSocket(8000);
		System.out.println("服务器已开启!!!");
		
		Socket sc = ss.accept();
		//获得客户端的Ip地址
		//获得IP地址
		String ip = sc.getInetAddress().getHostAddress();
		FileWriter fw = new FileWriter(filePath);
		PrintWriter pw = new PrintWriter(fw, true);
		InputStreamReader sr = new InputStreamReader(sc.getInputStream(), "GBK");
		BufferedReader br = new BufferedReader(sr);
		String line = null;
		while (null != (line = br.readLine())) {
			//写入文件
			pw.write(line);
			System.out.println(ip + ":" + line);
		}
		br.close();
		pw.close();
		ss.close();
	}

}

客户端代码

package com.lanou3g.Day_7_27;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;



public class Client {
	final static String homePath = System.getProperty("user.dir");
	final static String filePath = homePath + File.separator + "abc.txt";
	static Scanner input = new Scanner(System.in);
	
	public static void main(String[] args) {
		connect("127.0.0.1", 8000);
	}
	
	static void connect(String ip, int port) {
		try {
			FileWriter fw = new FileWriter(filePath);
			PrintWriter pw1 = new PrintWriter(fw, true);
			String string = null;
			Socket sc = new Socket(InetAddress.getByName(ip), port);
			System.out.println("客户机已开启!!");
			//输入信息写入文件
			while (!"exit".equals((string = input.next())))  {
				pw1.println(string);
			}
			PrintWriter pw = new PrintWriter(sc.getOutputStream());
			FileReader fr = new FileReader(filePath);
			BufferedReader br = new BufferedReader(fr);
			String len = null;
			//发送文件信息到服务器
			while (null != (len =br.readLine() )) {
				pw.println(len);
			}
			br.close();
			pw.close();
			sc.close();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

}

猜你喜欢

转载自blog.csdn.net/qq_42651904/article/details/81254001