保存Java程序状态及设置之对象序列…
2013-08-12 14:26
302 查看
在程序中,我们需要保存一个窗口的位置,让程式在下次启动的时候,仍然保持在上一次关闭的时候的位置,或程式需要将数据库连接的配置保存下来。
其中一种方法就是使用对象序列化存储。首先,简单解释一下序列化的含义:在Java程式中,对象是存在于内存中的,序列化就是将这个对象在内存中的形态变成字节流,然后输入到一个文档中,这样就将一个对象固定下来,不会随程式的关闭而消失。我们建立一个能够序列化的类,注意,在Java中,并不是每个类都能够实现序列化的,要实现java.io.Serializable接口的类才能够序列化。
public class ProgramSave implements
java.io.Serializable{
private int height;
private int width;
private int left;
private int top;
public ProgramSave(){
height=200;
width=200;
left=0;
top=0;
}
public int getHeight(){
return height;
}
public void setHeight(int hei){
height=hei;
}
…..
程式中用4个属性来保存程式的状态,并且声明多个方法来保存和获取属性。上面的程式只写了一个获取和保存的方法,其他的类似。
当程式退出的时候,在退出前,我们要先保存程式的状态,将下面的方法添加到程式退出前,执行完下面的代码后在退出程式。
//创建一个能够序列化的对象
ProgramSave save = new ProgramSave();
save.setHeight(窗口的高);
…..
这样将程式的状态保存到save这个对象中,但是,现在程式的状态只是保存在内存中,因为sava这个对象现在仍然是在内存中的。下面创建一个文档,并把save对象保存到这个文档中。
//创建文档对象
File file = new
File(“mysave.save”);
file.createNewFile();
//获取文档的字节流对象
FileOutputStream bytetOut = new FileOutputStream(file);
ObjectOutputStream outer = new
ObjectOutputStream(bytetOut)
//将save对象写入
outer.writeObject(save);
outer.flush();
outer.close();
到此,save对象,就被保存到文档中了。
在程式启动的时候,相反,我们要将mysave.save中的对象重新载入到内存中,然后获取其中保存的height等值,再调整窗口的位置。
在窗口对象初始化的时候,载入对象。
//获取文档对象
File f=new
File(“mysave.save”);
FileInputStream byteOut = new FileInputStream(f);
ObjectInputStream out = new ObjectInputStream(byteOut);
//将文档对象中的字节流读出来,并保存在内存中的mySet对象中
ProgramSave mySet = (SystemSave) out.readObject();
out.close();
byteOut.close();
后面就能够通过mySet.getHeight()等方法来获取保存的数据,然后再将窗口的高等属性配置为这个获取的值。
#Java
其中一种方法就是使用对象序列化存储。首先,简单解释一下序列化的含义:在Java程式中,对象是存在于内存中的,序列化就是将这个对象在内存中的形态变成字节流,然后输入到一个文档中,这样就将一个对象固定下来,不会随程式的关闭而消失。我们建立一个能够序列化的类,注意,在Java中,并不是每个类都能够实现序列化的,要实现java.io.Serializable接口的类才能够序列化。
public class ProgramSave implements
java.io.Serializable{
private int height;
private int width;
private int left;
private int top;
public ProgramSave(){
height=200;
width=200;
left=0;
top=0;
}
public int getHeight(){
return height;
}
public void setHeight(int hei){
height=hei;
}
…..
程式中用4个属性来保存程式的状态,并且声明多个方法来保存和获取属性。上面的程式只写了一个获取和保存的方法,其他的类似。
当程式退出的时候,在退出前,我们要先保存程式的状态,将下面的方法添加到程式退出前,执行完下面的代码后在退出程式。
//创建一个能够序列化的对象
ProgramSave save = new ProgramSave();
save.setHeight(窗口的高);
…..
这样将程式的状态保存到save这个对象中,但是,现在程式的状态只是保存在内存中,因为sava这个对象现在仍然是在内存中的。下面创建一个文档,并把save对象保存到这个文档中。
//创建文档对象
File file = new
File(“mysave.save”);
file.createNewFile();
//获取文档的字节流对象
FileOutputStream bytetOut = new FileOutputStream(file);
ObjectOutputStream outer = new
ObjectOutputStream(bytetOut)
//将save对象写入
outer.writeObject(save);
outer.flush();
outer.close();
到此,save对象,就被保存到文档中了。
在程式启动的时候,相反,我们要将mysave.save中的对象重新载入到内存中,然后获取其中保存的height等值,再调整窗口的位置。
在窗口对象初始化的时候,载入对象。
//获取文档对象
File f=new
File(“mysave.save”);
FileInputStream byteOut = new FileInputStream(f);
ObjectInputStream out = new ObjectInputStream(byteOut);
//将文档对象中的字节流读出来,并保存在内存中的mySet对象中
ProgramSave mySet = (SystemSave) out.readObject();
out.close();
byteOut.close();
后面就能够通过mySet.getHeight()等方法来获取保存的数据,然后再将窗口的高等属性配置为这个获取的值。
#Java
相关文章推荐
- 保存Java程序状态及设置Properties文件
- 保存Java程序状态及设置之Properties文件
- 保存Java程序状态及设置之Properties文件
- 保存Java程序状态及设置Properties文件
- java 对象序列化实现复杂UI对象状态的保存。
- 对象序列化(六):应用实例->程序退出时保存状态
- java 对象序列化实现复杂UI对象状态的保存。
- java里面对象的引用用来保存某个对象某个时刻下的状态
- 【分享】java反射获取、设置、打印对象属性,对象转map基础工具
- Java并发编程规则:无状态对象永远是线程安全的
- java通过反射设置对象私有属性
- JConsole分析JAVA程序运行状态
- java操作redis: 将string、list、map、自定义的对象保存到redis中
- 使用 XStream 把 Java 对象序列化为 XML(本文转载自http://www.blogjava.net/zlkn2005/archive/2005/12/16/24240.html)
- JAVA程序运行的内存分析JDK7.0堆栈分析局部变量new出来的对象
- 关于Java对象在内存中的状态和对象的引用的类型
- 程序开发,数据变量常量对象等保存到什么地方?
- java序列化保存对象的哪些内容
- Java对象的线程状态