解析stu.txt文本中的内容,解析完之后将其封装成一个对象添加到集合中。 然后通过客户端发送到服务器端将其保存到文件中。(已经提供了基类)

解析stu.txt文本中的内容,解析完之后将其封装成一个对象添加到集合中。

然后通过客户端发送到服务器端将其保存到文件中。(已经提供了基类)

客户端

package com.briup.day26;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;


public class Client {
	public static void main(String[] args) throws Exception {
		List<Student> list = new ArrayList<>();
		
		Socket socket = new Socket("127.0.0.1" , 8989);
		ObjectOutputStream os =  new ObjectOutputStream(socket.getOutputStream());
		
		File file = new File("src/stu.txt");
		FileReader fr = new FileReader(file);
		BufferedReader br = new BufferedReader(fr);
		
		String s = br.readLine();
//		System.out.println(s);
		while(s != null) {
		String[] stu = s.split(":");
		int a = Integer.parseInt(stu[1]);
		list.add(new Student(stu[0] , a , stu[2] , stu[3]));
		s = br.readLine();
		}

		Iterator it = list.iterator();						//获取迭代器的引用
		while(it.hasNext()) {							//集合中的迭代方法(遍历)
			System.out.println(it.next());
		}
		os.writeObject(list);//将list集合写到输出流里面
		os.flush();
		os.close();
		br.close();
	}
}  

服务端

package com.briup.day26;


import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.List;

public class Server {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		ServerSocket serverSocket = new ServerSocket(8989);
		Socket socket = serverSocket.accept();//服务端TCP
		
		ObjectInputStream is = new ObjectInputStream(socket.getInputStream());//输入流
		List<Student> s = (List) is.readObject();
		System.out.println(s);

		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("src/stu1.txt"));//输出流
//		for (Student student : s) {
			oos.writeObject(s);
//		}

	}

}

student类(已序列化)

package com.briup.day26;

import java.io.Serializable;

public class Student implements Serializable{
	private String name;
	private int age;
	private String sex;
	private String hobbies;
	public Student(String name, int age, String sex, String hobbies) {
		
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.hobbies = hobbies;
	}
	public Student() {
		super();
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getHobbies() {
		return hobbies;
	}
	public void setHobbies(String hobbies) {
		this.hobbies = hobbies;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + ", sex=" + sex + ", hobbies=" + hobbies + "]";
	}
				
}

stu.txt

Zhangsan:20:男:喜欢唱歌
Zhangsan1:21:女:喜欢跳舞
Zhangsan2:22:女:喜欢打麻将
Zhangsan3:23:男:喜欢打游戏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值