java学习笔记(8)

QUESTIONS:

1.java中流的分类:

从不同角度分析,大致有3类:
根据处理的数据,可分为:字符流,字节流
根据数据的流向,可分为:输入流,输出流
根据产生的源头,可分为:节点流和过滤流

2.InputStream和OutputStream子类,对应的字符流:

1)文件流FileInputStream 和 FileOutputStream,对应的字符流为 FileReader 和FileWriter。
FileInputStream作用是指定文件路径,将一个文件内容作为其他流的数据源,从而使用流的方法对文件进行读取。
FileOutputStream作用通过指定文件路径,将文件作为其他流的输出目的地,从而使用流的方式对文件进行读写操作。
2)字节数流ByteArrayInputStream 和 ByteArrayOutputStream,作用是在字节数组和流之间搭建桥梁。
ByteArrayInputStream将字节数组构造成字节数组流的数据源,从而进行读取。
ByteArrayOutputStream作用是将任意多字节的内容多次写入流中,最后整体转为一个字节数组。
3)管道流PipedInputStream 和 PipedOutputStream,对应的字符流为PipedReader 和PipedWriter,多用于多线程通信。
4)对象流ObjectInputStream 和 ObjectOutputStream。
5)过滤流FilterInputStream 和 FilterOutputStream,分别重写了父类的所有方法,使得它们在读取数据时可以对数据进行特殊处理。对应的字符流为FilterReader 和 FilterWriter。

3.字节流和字符流转化:

输入字节流转为字符流需要用到InputStreamReader
输出字符流转为字节流用到OutputStream 或 PrintWriter

4.java过滤流作用

过滤流在读写数据的同时可以对数据进行处理,并提供同步机制,这样在同一时刻只有一个线程可以访问一个I/O流。

FilterInputStream和FilterOutputStream类是所有过滤输入流和输出流的父类,它们是抽象类,本身不能生成任何实例。

其常用子类:
BufferedInputStream 和 BufferedOutputStream这两个类实现了具有缓冲作用的过滤流。
对于BufferedInputStream类,当系统读取数据时,数据按块读入缓冲区,随后的读取操作直接访问缓冲区。
当缓冲区区满时,使用BufferedOutputStream进行输出。缓冲区中的数据写入连接的输出流,BufferedOutputStream类提供的方法flush()可以强制将缓冲区的内容全部写入输出流。

DataInputStream 和 DataOutputStream这两个类不仅能读写数据流,而且能读写各种各样的Java语言自带的数据类型,如int、float等。

5.什么是对象的序列化和反序列化:

对象的串行话也称作序列化,是将内存中的动态对象表达成可以传输的串形式。目的是为了便于网络传输和介质储存。
Java中提供了Serializable接口。当一个类声明实现了Serializable接口时表明该类加入对象串行化协议,即Serializable接口时对象串行化的标志。

6.File类的表示和作用:

File类不止指系统中的文件,也指目录,因为目录是特殊的文件。
通过File类对象可以访问文件的属性并且可以创建空文件和目录。

7.java对文件读写提供了哪些支持:

使用FileWriter和FileReader,对文件内容按字符读取。
使用包装类BuffredReader和BufferedWriter,对文件内容进行整行读取。
使用FileInputStream和FileOutputStream,这种方法以字节的形式写入文件,读取文件时先读取字节数组,再将字节数组转换为字符串形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值