当前位置: 首页 > 图文教程 > Java技术 > Java基础 > 通过Java套接字传递对象(2)

Java基础
java基础:小编浅谈java对象
Java基础:孙鑫谈Java中文乱码问题产生原因分析(一)
Java基础:孙鑫谈Java中文乱码问题产生原因分析(二)
Java基础:小编谈JDBC
Java基础:小编详谈Java编码规则并不是老生常谈
Java基础:小编详谈AOP概念
Java基础:小编谈java多维数组
Java基础:小编谈Javascript之DOM的使用(25条)
Java基础:小编杂谈动态语言
Java基础:程序员之家七月份Java基础总结
Java基础:XHTML中css+div布局(经典8条)
Java基础:小编浅谈Spring基于三大模板的Web表示层技术
Java基础:浅谈多线程那点事
Javai基础:浅谈封装的那些事
Java基础:小编浅谈JavaScript中自定义函数那些事
Java基础:小编谈JavaScript中使用原型来创建对象
Java基础:CSS那些事
Java基础:小编对JavaScript的一些认识
Java基础:小编浅谈JavaScript与Java区别何在
Java基础:小编谈继承的语法

Java基础 中的 通过Java套接字传递对象(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-23   浏览: 210 ::
收藏到网摘: n/a

序列化用户自己的类

 

  现在,让我们看看如何序列化用户自己写的类。在这个例子中,我们将建立一个用户类UserInfo,见例程3。为了让它可序列化,UserInfo类实现了Serializable接口。

 

  例程 3: UserInfo.java

 

import java.io.*

import java.util.*

 

public class UserInfo implements Serializable {

String name = null

 

public UserInfoString name {

this.name = name

}

 

public void printInfo() {

System.out.println"The name is: "+name);

}

}

 

 

  下一步就是建立一个能创建UserInfo类实例的类,然后将对象写入输出流中,如例程4。本例中的输出流是一个名为"name.out"的文件。要注意的是,例程4 中的writeObject方法可以被调用任意多次,将任意多个对象写入输出流。

 

  例程 4: SaveInfo.java

 

import java.io.*

import java.util.Date

 

public class SaveInfo {

 

public static void mainString argv[] throws Exception {

FileOutputStream fos = new FileOutputStream"name.out");

ObjectOutputStream oos = new ObjectOutputStreamfos);

// create two objects

UserInfo user1 = new UserInfo"Java Duke");

UserInfo user2 = new UserInfo"Java Blue");

// write the objects to the output stream

oos.writeObjectuser1);

oos.writeObjectuser2);

oos.flush();

oos.close();

fos.close();

}

}

 

 

  最后,我们写一个将已经保存的对象读入的类,并且调用一个如例程5所示的方法。和writeObject 一样,readObject方法能被调用任意多次,从输入流中读入任意多个对象。

 

  例程 5: ReadInfo.java

 

import java.io.*

import java.util.Date

 

public class ReadInfo {

 

public static void mainString argv[] throws Exception {

FileInputStream fis = new FileInputStream"name.out");

ObjectInputStream ois = new ObjectInputStreamfis);

// read the objects from the input stream the file name.out

UserInfo user1 = UserInfo ois.readObject();

UserInfo user2 = UserInfo ois.readObject();

// invoke a method on the constructed object

user1.printInfo();

user2.printInfo();

ois.close();

fis.close();

}

}

 

 

  要测试这个例子,请编译如下源文件:UserInfo.java, SaveInfo.java, ReadInfo.java。运行 SaveInfo,然后运行ReadInfo,将看到类似下面的输出结果:

 

  The name is: Java Duke

  The name is: Java Blue