Java自学总结之八序列化

来源:互联网 发布:淘宝号改后台有危害吗 编辑:程序博客网 时间:2024/05/29 10:01

在设计程序的过程中,对象一般都有表针状态和属性的实例变量,比如设计游戏时,我们需要保存用户的通关状态等,所以如何保存对象的实例变量是非常重要的一个知识点。

存储对象有两种方法:

1. 序列化:就像下图的压缩袋一样,序列化之前就是压缩前,序列化之后就是压缩后,保留下来是能够代表物体对象特征的东西,就像被子被压缩后,不能表征被子的空气被抽走,能不是棉花被抽走偷笑

下面是序列化的一个代码例子

public class Box<span style="color:#009900;"> implements Serializable</span>{<span style="font-size:24px;color:#cc33cc;">//此处要特别注意Serializable接口是一个标记用的接口,因此,不需要实现任何方法</span>private int width;private int heigth;public void setWidth(int w){width = w;}public void setHeigth(int h){heigth = h;}public static void main(String[] args) {// TODO Auto-generated method stubBox MyBox = new Box();MyBox.setWidth(50);MyBox.setHeigth(30);try{FileOutputStream fs = new FileOutputStream("foo.ser");ObjectOutputStream os = new ObjectOutputStream(fs);os.writeObject(MyBox);os.close();}catch(Exception ex){ex.printStackTrace();}}}

串流是指连接连接来源和目的地的那个线,上面代码中FileOutputStream(连接)和ObjectOutputStream(调用的方法)就是连接对象和文件的两个串流,通常串流是俩俩连接的,一个表示连接,另一个表示调用的方法,这是因为连接的串流通常是很底层的,例如FileOutputStream(连接)是以字节的形式写入文件的,但在实际编程中,我们是以对象的形式写入文件中,因此需要中间的高层连接串流,ObjectOutputStream就会调用它的方法把对象转化为字节然后通过连接串流存入文件中。


序列化,是全有或全无的序列化。

对应的还有解序列化


2.将数据存储为文本


import java.io.*;


public class Box {

public static void main(String[] args) {
// TODO Auto-generated method stub

try{
BufferedWriter  writer = new BufferedWriter(new FileWriter("myname.txt"));
writer.write("liliping");
writer.flush();
}catch(Exception ex){
ex.printStackTrace();
}
}


}

这里引入了缓存区的作用

0 0
原创粉丝点击