输入输出处理(IO)(备忘)——下

本文详细介绍了Java中缓冲流的使用方法,包括字节流和字符流,并解释了如何利用缓冲区提高文件读写的效率。此外,还深入探讨了对象序列化的概念、应用场景及其实现方式。

七、缓冲区(buffered开头的):——流用缓冲区包装后

1、缓冲区:缓冲区的出现提高了对流的操作效率。所以在创建缓冲区之前,必须要先有流对象。其实缓冲内部就是在使用流对象的方法,只不过加入了数组对数据进行了临时存储,为了提高操作数据的效率。

2、字节流——BufferedInputStream(输入流)、BufferedOutputStream(输出流)

利用缓冲区对象(字节流)来读取文件内容的步骤:

1.创建字节流;

2.创建缓冲区对象;

3.建立字节数组;

4.写/读文件;

5.关闭资源(流和缓冲区对象)

3、字符流——BufferedReader(输入流)、BufferedWriter(输出流)

利用缓冲区对象(字符流)来读取文件内容的步骤:

1.创建字符流;

2.创建缓冲区对象;

3.建立字符数组(写的话可以直接字符串);

4.写/读文件;

5.关闭资源(流和缓冲区对象)

八、标准I/O

1、

2、重定向标准IO

System提供了三个重定向方法

System.in——它的输入对象是键盘

System.out——它的输出对象是控制台

重定向的作用不是很清楚。

九、对象序列化

1、为什么需要对象序列化?

实际上为了解决对象流读写中遇到的问题。Java对象序列化是为了方便于对象的“传输”。举个例子:就是你要搬东西,为了能够叫方便的搬运,你可以把这个东西进行拆散,搬到了目的地后,在组装起来。

2、什么是序列化?

将对象的状态存储到特定存储介质中的过程。

3、什么时候需要对象序列化

一般情况下,下面几种情况会用到序列化:

v 当你想把内存中的对象保存到一个文件中或者数据库中的时候;

v 当你想用套接字在网络上传送对象的时候;

v 当你想通过RMI传输对象的时候。

4、怎么实现对象序列化

(1)支持可序列话(Serializable)——实现java.io.Servializable

(2)对象序列化的步骤:

5、对象的反序列化

反序列化步骤:

2、禁止某些属性被反序列化——那么就要禁止某些属性序列化

用transient修饰的属性不能够被序列化

6、注意事项:

(1)包含引用类型属性的对象序列化,那该引用类型也必须为可序列化的。

(2)问题二:

t1和t2中的Student对象是否与stu相同??——是相同的。

解释:对象分配序列号;当程序试图序列化一个对象是,将会检测是否已经被序列化,只有序列化后的对象才能被转换成字节序列输出;如果对象已经被序列化,则程序直接输出一个序列化编号,而不再重新序列化。如图解:

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值