浅谈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 把一个对象作为输入流

(待续)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值