JAVA中的序列化是个什么概念?
解决方案 »
- 询问Core Java中文第八版的一个问题
- 关于JAVA中判断特定位置后面的字符串的问题
- JNI调用C++ DLL时,如何调试dll呢?(VC调试高手请给与帮助)
- 求一个连接到Access 的带窗口操作的原码.....
- 哪位兄弟有沒有Java寫的打印的例子??
- JAVA关于数据保存的问题
- 关于jar直接运行的问题
- poi操作excel文件的问题,请大侠出手相助呀!!!!
- 如何保证session里的属性值在不同的端口跳转时不丢失?
- 请问考过scjp人指点小弟
- 问StringBuffer在方法中改变,但输出为什么没变?
- 我写一个bat来运行我的程序,可是运行完以后,cmd窗口就会自动关闭,请问如何使程序运行完,控制台窗口也不关闭?谢谢
import java.io.*;
/**
*
* @author Administrator
*/
public class SerlizDemo {
/** Creates a new instance of SerlizDemo */
public SerlizDemo() {
}
public static void main(String args[])
{
try
{
MyClass object1=new MyClass("Hello", -7, 2.7e10);
System.out.println(object1);
FileOutputStream fos=new FileOutputStream("myfile");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(object1);
MyClass object2=new MyClass("Hmy", -8, 2.7e10);
oos.writeObject(object2);
oos.flush();
oos.close();
}
catch(Exception e)
{
e.printStackTrace();
}
try
{
MyClass object;
FileInputStream fis=new FileInputStream("myfile");
ObjectInputStream ois=new ObjectInputStream(fis);
object=(MyClass)ois.readObject();
System.out.println("object:"+object);
object=(MyClass)ois.readObject();
System.out.println("object:"+object);
object=(MyClass)ois.readObject();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
class MyClass implements Serializable
{
String s;
int i;
double d;
private static final long serialVersionUID = 1L;
public MyClass(String s ,int i ,double d)
{
this.s=s;
this.i=i;
this.d=d;
}
public String toString()
{
return "s="+s+"; i="+i+"; d="+d;
}
}
ObjectOutputStream用于把对象写入流,而ObjectInputStream用于恢复对象。也就是说,一旦对象被序列化,对像就变成了流,例如它可以是流文件,这样一来这个对象就脱离了原来的程序而单独存在,就像你打RPG游戏是的存档。当你再运行程序时,在把它从流中恢复,就像游戏中的读档,而且当你恢复它时,你保存的那些信息会和你保存时一样完全被恢复。它是比较重要的概念,因为它是RMI和JavaBean的基础。