浅谈JAVA的IO流

一. 首先先解释一下关于字节流字符流的区别:

1.字节流:处理单元为1字节的流。

InputStream是所有字节输入流的祖先,OutputStream是所有字节输出流的祖先。

2.字符流:处理单元为2字节的Unicode字符流

Reader是所有字符串输入流的祖先,Writer是所有字符串输出流的祖先。

小结:通过使用字节流,可以读取任意文件。

 字节流一次读取一个字节,而字符流使用了字节流读到一个或者多个字节时,去查找指定的编码表,返回对应的编码。

 所以字符流只能处理纯文本字符数据,而字节流可以处理更多类型的数据,比如图片,视频,音频文件等。

 因此,只要是纯文本数据处理,优先考虑使用字符流。其他情况就使用字节流。


二. 关于点流过滤器流的区别

1.结点流(Node Stream)  直接从指定的位置读写(内存,磁盘)

2.过滤器流(Filters)  一般以其他输入流作为其输入源,经过过滤器处理以新的流提供给用户


三. 各子类用法


1. FileInputStream 把文件作为一个InputStream,实现对文件的读取操作

2. PipedInputStream 实现了管道的概念,主要在线程中使用,管道输入流是指一个通讯管道的接收端。

       一个线程通过管道输出流发送数据,另一个线程通过管道输入流读取数据,这样可以实现线程的通讯。

3. ByteArrayInputStream 把内存中一个缓冲区作为InputStream使用

4. StringBufferInputStream 把一个String对象作为InputStream.

5. ObjectInputStream 把一个对象作为输入流

(待续)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值