java io流分类讲解

java io流:

横向分类分为字节流字符流
纵向分类分为节点流包装流(高级流)。
这里的“横纵”读者自行体会。

包装流(高级流)

包装流包装节点流,以节点流作为构造源,主要有:缓冲流、数据流、对象流、转换流

  • 缓冲流(Buffred[Input/Output]Stream、Buffred[Reader/Writer]):顾名思义存在一个缓冲区,读写操作优先在缓冲区进行,缓冲区满了才一次性对外部存储读写,提高效率。

  • 数据流(Data[Input/Output]Stream):文件字节流和缓冲字节流仅仅支持简单的字节写入写出,数据流仅包装字节流,可支持java8大基本类型输入输出,但一次读写一个基本类型。

  • 对象流(Object[Input/Output]Stream):仅包装字节流,支持向流中读写java可序列化对象。

  • 转换流([Input/Output]Stream[Reader/Writer]):将字节节点流转换为字符节点流。

  • 打印流(PrintStram、PringWriter): 是输出信息最为方便的流,可以用print型方法集格式化输出任何类型的一串数据。

    PrintStreamPrintWriter的区别:

    • PringStream出现的较早,System.out使用的就是PringStream是实现的。
    • 二者最大的区别在于PrintStram在输出字符,将字符转换为字节时采用系统默认编码格式,跨平台可出现不可控问题。PrintWriter可以在传入WriterOutPutStreamWriter(OutPutstream out,Charset cs),自己指定字符编码。非特殊情况建议使用PringWriter

节点流

节点流:从数据源构造,根据数据源分为:文件节点流、字节/字符数组节点流、管道节点流、字符串字符流
(1)文件节点流(File[Input/Output]Stream、File[Reader/Writer]):以文件作为构造输入源
(2)字节/字符节点流(ByteArray[Input/Output]Stream、CharArray[Reader/Writer]):字节流和字符流分别以字节数组和字符数组作为构造输入源。
(3)管道节点流(Pipe[Input/Output]Stream、Pipe[Reader/Writer]):以与其它线程共用的管道为构造源。
(4)字符串字符流(String[Reader/Writer]):以字符串为构造源的字符字节流。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值