[Java] Java序列化将一个对象的内容保存到文件和从文件读取对象
Java中将一个对象的内容保存到文件和从文件读取对象
在看KEA的代码中时发现它这么做:
public class KEAModelBuilder implements OptionHandler {
/** The KEA filter object */
KEAFilter
m_KEAFilter = null; // KEAFilter 类型的对象是 KEAModelBuilder 类的成员变量
/**
* Saves the extraction model to the file.
*/
public void saveModel() throws Exception {
BufferedOutputStream bufferedOut =
new BufferedOutputStream(new FileOutputStream(
m_modelName)); // 文件路径
ObjectOutputStream out = new ObjectOutputStream(bufferedOut);
out.writeObject(
m_KEAFilter
);
out.flush();
out.close();
}
//从文件中加载信息到对象,可以这么做:
/**
* Loads the extraction model from the file.
*/
public void loadModel() throws Exception {
BufferedInputStream inStream =
new BufferedInputStream(new FileInputStream(
m_modelName)); // 文件路径
ObjectInputStream in = new ObjectInputStream(inStream);
m_KEAFilter
= (KEAFilter)in.readObject();
in.close();
}
}
这样,当调用 KEAModelBuilder 的 saveModel() 方法可以将对象
m_KEAFilter
的全部信息写入文件当中. 调用 loadModel() 方法可以从文件读取对象的信息. 然后就可以正常使用
m_KEAFilter
对象了. 十分方便.
该方法值得借鉴.