1、对象流的理解
①作用:用于存储和读取基本数据类型或对象的处理流,可以把java对象写入到数据源,也能把对象从数据源还原出来
*②对象序列机制:允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。//当其它程序获取了这种二进制流,就可以恢复成原来的Java对象(面试可能会问)
(简而言之:对象–>二进制流 永久存储 )
以下是代码展示,其中ObjectOutputStream是序列化过程,ObjectInputStream是反序列化过程。
public class ObjectInputOutputStreamTest {
/*
序列化过程:将内存中的java对象保存在磁盘中或通过网络传输出去
使用ObjectOutputStream实现
*/
@Test
public void testObjectOutputStream(){
ObjectOutputStream oos = null;
try {
//dat文件,可以以多种方式打开(如.txt)
oos = new ObjectOutputStream(new FileOutputStream("object.dat"));
oos.writeObject(new String("hello!"));
//每一次进行存储操作,必须要进行flush操作
oos.flush();//刷新操作
} catch (IOException e) {
e.printStackTrace();
} finally {
if (oos!=null) {
try {
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/*
反序列化:将磁盘文件中的对象还原为内存层面的一个java对象
*/
@Test
public void testObjectInputStream(){
ObjectInputStream ois=null;
try {
//读取哪个文件(文件要存在)
ois =