[Java] Java序列化将一个对象的内容保存到文件和从文件读取对象

[Java] Java序列化将一个对象的内容保存到文件和从文件读取对象

Java中将一个对象的内容保存到文件和从文件读取对象

在看KEA的代码中时发现它这么做:

public class KEAModelBuilder implements OptionHandler {
/** The KEA filter object */
KEAFilter  m_KEAFilter = null; // KEAFilter 类型的对象是 KEAModelBuilder 类的成员变量

        //在运行Java程序时如果我们需要保存一个对象的所有内容到文件,可以这样做:

/** 
 * 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  对象了. 十分方便.

该方法值得借鉴.








你可能感兴趣的:(Java)