WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院WEB开发Jsp 保存Java程序状态及设置之对象序列化 阅读

保存Java程序状态及设置之对象序列化

 2008-01-05 19:25:28 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劕鐏氱€氼剟姊洪崹顕呭剰闁逞屽墮缁夊綊寮婚妸褉鍋撻棃娑欏暈闁伙綀浜埀顒傛暬閸嬪﹪宕伴弽褏鏆﹂柨鐕傛嫹
核心提示:在Windows开发中,可以使用*.ini文件来保存程序的状态或设置等数据,保存Java程序状态及设置之对象序列化,并且一般都提供了操作ini文件的API,但在java中怎么实现类似的功能呢?比如,2.通过properties文件来保存,Properties文件类似于windows编程中的ini文件,在程序中,我们需要

  在Windows开发中,可以使用*.ini文件来保存程序的状态或设置等数据,并且一般都提供了操作ini文件的API。但在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对象中
  
  SystemSave mySet = (SystemSave) out.readObject();
  
  out.close();
  
  byteOut.close();
  
  后面就可以通过mySet.getHeight()等方法来获取保存的数据,然后再将窗口的高等属性设置为这个获取的值。
  
  2.通过properties文件来保存。Properties文件类似于windows编程中的ini文件,Java中也提供了API来操作properties文件。

Tags:保存 Java 程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接