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

Java基础
Struts+Hibernate数据表示
JSP+MYSQL+Java类优化分页
利用JBuilder 2005 开发Spring
Java程序与C语言的接口
10分钟Hibernate体验
Tomcat配置技巧Top 10
JDBC+Hibernate将Blob数据写入Oracle
Java使用全屏幕模式
Java基础:小编浅谈C#与java的属性区别
Java基础:小编浅谈C#和Java的相似之处
Java基础:小编浅谈C#与java的事件区别
Java基础:小编浅谈C#与java的对象索引机制、指代的区别
Java基础:小编谈Java中获取系统属性
Java基础:浅谈Java Bean与EJB的那些区别
Java基础:Java中对文件读写操作概述
Java基础:Java中安全问题
Java基础:浅谈面向对象应用中的持续性
Java中多线程的实现
多线程使用中的问题
MIME详解

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-23   浏览: 207 ::
收藏到网摘: 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