0%

Java/Java-郑莉版输入输出流课件

郑莉版输入输出流课件

在Java中将信息的输入与输出过程抽象为I/O流
I/O流一旦被创建就会自动打开
通过调用close方法,可以显式关闭任何一个流
如果流对象不再被引用,Java的回收机制也会隐式地关闭它
-w687

读写数据的方法

不论数据从哪来,到哪去,也不论数据本身是何种类型,读写数据分方法大体上都是一样的
-w524

I/O流的分类

  • 从流的方向划分
  • 输入流
  • 输出流
  • 从流的分工划分
  • 节点流
  • 处理流
  • 从流的内容划分
  • 面向字符的流
  • 面向字节的流

自己补充了解:
节点流和处理流的区别
-w568

java.io 包的顶级层次结构

面向字符的流: 专门用于字符数据
面向字节的流: 用于一般目的
-w586

面向字符的流

  • 针对字符数据的特点进行过优化,提供一些面向字符的有用特性
  • 源或目标通常是文本文件

    实现内部格式和文本文件中的外部格式之间的转换

    -w684

    面向字符的抽象类Read和Writer

  • java.io包中所有流的抽象基类
  • Reader提供了输入字符的API
  • Writer提供了输出字符的API
  • 它们的子类又分为两大类
  • 节点流: 从数据源读入数据或往目的地写出数据
  • 处理流: 对数据执行某种处理
  • 多数程序使用这两个抽象类的一系列子类来读入/写出文本信息
  • 例如: FileRader/FileWriter用来读写文本文件

处理流和节点流一览:
-w670

面向字节的流

  • 数据源或目标中含有非字符数据,必须用字节流来输入/输出。
  • 通常被用来读写诸如图片、声音之类的二进制数据
  • 绝大多数数据是被存储为二进制文件的,世界上的文本大约只能占到2%,通常二进制文件比含有相同数据量的文本文件小得多。