解析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:男:喜欢打游戏