服务器:
这样就可以传递整个数据结构。如果有很多类型的数据要传递,就可以用类把它们打包在一起,同时传递。
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Khd3{
public static void main(String[] args) throws IOException, ClassNotFoundException {
ServerSocket serverSocket=new ServerSocket(3000);
Socket socket=serverSocket.accept();
InputStream inputStream=socket.getInputStream();
ObjectInputStream objectInputStream=new ObjectInputStream(inputStream);
T t= (T) objectInputStream.readObject();
System.out.println(t.name);
System.out.println(t.age);
}
}
客户端:
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.net.Socket;
public class Test1{
public static void main(String[] args) throws IOException {
Socket socket=new Socket("127.0.0.1",3000);
OutputStream outputStream=socket.getOutputStream();
ObjectOutputStream objectOutputStream=new ObjectOutputStream(outputStream);
T t=new T("w",20); //初始化 自定义类Test1
objectOutputStream.writeObject(t); // 可以在socket中传递整个类的实例内容。
objectOutputStream.flush();
socket.close();
}
}
class T implements Serializable { //必须要实现 Serializable,否则要报错。非常重要
String name;
int age;
T(String name,int age) {
this.name=name;
this.age=age;
}
}
把多个类型的数据打包写入文件中,这种文件有点像数据库的味道。准备用这个方法写个数据库
写文件:
package org.example;
import java.io.*;
import java.net.Socket;
public class Khd1{
public static void main(String[] args) throws IOException {
FileOutputStream fileOutputStream=new FileOutputStream("/home/wzpc/1.txt");
ObjectOutputStream objectOutputStream=new ObjectOutputStream(fileOutputStream);
T t=new T("w",20); //初始化 自定义类T
objectOutputStream.writeObject(t); // 可以在socket中传递整个类的实例内容。
objectOutputStream.flush();
T t1=new T("ww",200); //初始化 自定义类T
objectOutputStream.writeObject(t1); // 可以在socket中传递整个类的实例内容。
objectOutputStream.flush();
}
}
class T implements Serializable { //必须要实现 Serializable接口 。非常重要
String name;
int age;
T(String name,int age) {
this.name=name;
this.age=age;
}
}
读文件
package org.example;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class AppTest{
public static void main(String[] args) throws IOException, ClassNotFoundException {
FileInputStream fileInputStream=new FileInputStream("/home/wzpc/1.txt");
ObjectInputStream objectInputStream=new ObjectInputStream(fileInputStream);
T t= (T) objectInputStream.readObject();
System.out.println(t.name);
System.out.println(t.age);
T t1= (T) objectInputStream.readObject();
System.out.println(t1.name);
System.out.println(t1.age);
}
}