我爱电脑技术论坛's Archiver

bbs23 发表于 2008-4-8 08:39

保存Java程序状态及设置Properties文件

在Windows开发中,可以使用*.ini文件来保存程序的状态或设置等数据,并且一般都提供了操作ini文件的API。但在Java中怎么实现类似的功能呢?比如,在程序中,我们需要保存一个窗口的位置,让程序在下次启动的时候,仍然保持在上一次关闭的时候的位置,或者程序需要将数据库连接的设置保存下来。 /@a `-o5P/fMJ
V/S8C.a-DBPD r|
.}.R` w*w*}[
在前面一篇<<保存Java程序状态及设置之对象序列化>>中介绍了使用序列化的类来保存这些数据,本篇文章介绍使用Properties文件来保存.Properties文件的本质就是一个文本文件,文件中使用属性和值来保存数据,如:abc.name=Colin。使用Porperites文件来保存实际上就是创建一个Properites文件,在程序关闭的时候,将数据写入文件,再等程序启动的时候,从这个Properties文件中读出数据。
}s@7U jK#xWp C 7@ba,SWv
~1` O6lu6z'av4d
我们假设有一个对象frame,在启动的时候要从一个properties文件中读取数据,再根据读取的数据来设置其位置及大小,在frame关闭的时候将位置,大小等数据保存到properties文件中。
]4uo^-r2B:]'W v
$Elc4jD+RZ 当程序启动,创建frame的时候: &HeAT*Ex
'jL9qu4j3]@]+v
try{ 2Hw*H w!S
JqeGn%bHSsr @r
Properties property = new Properties(); #f+M,H"O4N7]9J7p2B`+O

ar }$m*v property.load(new FileInputStream("mysave.properties")); /o5AKWS%q

v-Z2~ M d^f/}\ frame.setSize(property.getProperty("frame.height"),property.getProperty("frame.width"));
P%ZZ ~PH O z-z0^ O(Hym:W9J N
frame.setLocation(property.getProperty("frame.left"),property.getProperty("frame.top")); _M\.SHDs.{H`

} h/gj,\ }
]aAU$S"C`
4}bX/F3f(s4L k e8X-fz%Y!g;LV(I
当frame被关闭的时候,执行下面的程序: ;J oV Pt4u"A6y? C

9Y {r\n)C try{
q lezk a| X$D
ST*H&Y(s.b*G Properties property = new Properties();
&mupe_'p4ux
??R|N property.setProperty("frame.height",frame.getHeight());
yn&T0_v'[{ p2^^!SP,@w
property.setProperty("frame.width",frame.getWidth()); Y]y6jk8{f{_

)m&tu)I0b{ property.setProperty("frame.left",frame.getX()); )`BzIR;@6d.cf4M/x

u!H/Z7v C d]q property.setProperty("frame.top",frame.getY()); oqr o/W+J K

:A5ej)U _G C property.store(new FileOutputStream("mysave.properties"),"mysave.properties");
HS'woL,oy
1w_c-kz f } 8TIpV,A
%wD2k V`He
mysave.properties是被保存的文件,可以另外指定其地址。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.