Java数据流的划分

转自 UFAN0

数据流不熟悉,各层流的包装常常把我弄糊涂,翻阅API也不是很方便理清其结构,所以总结一下基础知识点吧。

介绍

  • 数据流(Stream)是一组有顺序的、有起点和终点的字节集合,是对输入和输出的总称和抽象。

流的划分及简单描述

  • 数据流一般分为输入流(InputStream)输出流(OutputStream)
    输入流只能读不能写,而输出流只能写不能读。

  • Java主要定义了两种类型的流:字节流和字符流。
    字节流以字节为基本处理单位,字符流以字符为基本处理单位(采用统一的编码标准)。某些场合字符流比字节流更有效。

字节流

字节流在顶层有两个抽象类:InputStreamOutputStream,定义了所有关键字节流的关键方法。最重要的两种方法是read()write(),它们分别用于读和写字节。两种方法都在InputStreamOutputStream中被定义为抽象方法,它们被不同的子类重写,可应用于不同的场景。

  • 字节输入流
描述
InputStream表示字节输入流的抽象类,是其他流的父类
FileInputStream文件字节输入流
FilterInputStream过滤字节输入流,提供拓展功能的输入流
BufferedInputStream缓冲输入流,可以在其他的流的基础上构建缓存,是FilterInputStream的子类
DateInputStream包含读取Java标准数据类型方法的输入流,是FilterInputStream的子类
ObjectInputStream对象输入流,用于对象串行化
  • 字节输出流
描述
OutputStream表示字节输出流的抽象类,是其他流的父类
FileOutputStream文件字节输出流
FilterOutputStream过滤字节输出流,提供拓展功能的输出流
BufferedOutputStream缓冲输出流,可以在其他的流的基础上构建缓存,是FilterOutputStream的子类
DateOutputStream包含读取Java标准数据类型方法的输出流,是FilterOutputStream的子类
PrintStream打印流,包含print()println()的输出流,是标准输出流System.out使用的流
ObjectOutputStream对象输出流,用于对象串行化
字符流

字符流在顶层有两个抽象类:ReaderWriter,定义了所有关键字符流的关键方法。最重要的两种方法是read()write(),它们分别进行字符数据的读和写。这些方法被不同的子类重写,可应用于不同的场景。

  • 字符输入流
描述
Reader表示字符输入流的抽象类,是其他流的父类
BufferedReader带缓冲功能的字符输入流
InputStreamReader字节输入流向字符输入流转化的流
FileReader文件字符输入流,是InputStreamReader的子类
  • 字符输出流
描述
Writer描述字符输出流的抽象类,是其他流的父类
BufferedWriter带缓冲功能的字符输出流
OutputStreamWriter字节输出流向字符输出流转化的流
PrintWriter打印字符输出流,类似PrintStream
FileWriter文件字符输出流,是OutputStreamWriter的子类
字节流的使用

待续

字符流的使用

待续

串行化

待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值