JAVA中Socket通信是以流的形式传输数据,对于InputStream和OutputStream的装饰问题,如果只是传输一串字符串,可以通过简单的BufferedReader和PrintWriter实现,但是在实际的客户端与服务端通信中不可能只是传递简单字符串,会有各种不同形式的信息,若是传输对象,则可以用 ObjectInputStream和ObjectOutputStream来实现,但是这种方法局限性也很明显,所以需要自己定义通信协议,用到DataInputStream和DataOutputStream。
以下是利用DataInputStream和DataOutputStream实现的将person类实例中的数据在文件中存取的过程,在Socket通信中也类似。
person.class
public class person {
private String name;
private int age;
public person(String name,int age){
this.name=name;
this.age=age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
文件存取过程:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;