IO流学习

1,流是一组有顺序的,有起点和重点的字节集合,是对数据传输的总称和抽象。即数据在两个设备之间的传输称作流。流的本质就是数据传输,根据数据传输的特性,将流抽象为各种累,方便直观的进行数据操作。

2,根据处理数据类型不同,分为字符流、字节流

 根据数据流向不同,分为输入流、输出流

3,因为数据的编码不同,从而有了对字符进行高效操作的流对象,即字符流,它的本质就是基于字节流读取时,去查了知道的码表

  字节流与字符流区别:

    读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读取多个字节

    处理对象不同:字节流能处理所有类型的数据(图片、avi等),字符流只能处理字符类型的数据

  所以,只要处理纯文本数据,应优先考虑使用字符流,除此之外都应使用字节流

4,对于输入流是读操作,对于输出流是写操作

5,输入字节流InputStream

  所有输入流的父类,是一个抽象类

  ByteArrayInputStream基本的流介质,从byte数组读取文件

  StringBufferInpputStream基本的流介质,从StringBuffer中读取数据

      FileInputStream基本的流介质,从本地文件中读取数据

  PipedInputStream是从与其他线程共用的管道中读取数据

6,输出字节流OutPutStream

  所有输出字节流的父类,是一个抽象类

  ByteArrayOutputStream基本的流介质,向byte数组写入数据

  FileOutputStream基本的流介质,向本地文件中写入数据

  PipedOutputStream向与其他线程共用的管道中写入数据

7,字符输入流Reader

  所有输入字符流的父类,是一个抽象类

  charReader、StringReader是两种基本的介质流,它们分别从char数组,String中读取数据

  pipedReader是从与其他线程共用的管道中读取数据

  InputStreamReader是连接字节流和字符流的桥梁,它将字节流转变为字符流。FileReader是一个到达此功能常用的工具类,在其源代码中明显使用了将FileInputStream转变为Reader的方法

8,字符输出流Writer

  所有输出字符流的父类,是一个抽象类

  charArrayWriter、StringWriter两种基本的介质流,分别向Char数组,String中写入数据。

  pipedWirter向与其他线程共用的管道中写入数据

  BufferedWriter是一个装饰器,为writer提供缓冲功能

  OutputStreamWriter是OutputStream到Writer转换的桥梁,它的子类FileWriter是实现此功能的工具类。

9,字符流与字节流转换

  转换流的特点

    字符流和字节流直接的桥梁

    可对读取到的字节数据经过知道编码转换为字符

    可对读取到的字符数据经过知道编码转换成字节

  具体对象体现

    InputStreamReader:字节到字符的桥梁

    OutputStreamWriter:字符到字节的桥梁

      这两个流对象时字符体系中的成员,他们又有转换作用,所以构造的时候需要传入字节流对象

10,File类

  使用对象的思想来操作文件和文件夹,保存文件或目录的元数据信息,如文件名、文件长度、最后修改时间、是否可读、获取当前文件路径名、判断文件是否存在、获取当前目录文件列表、创建、删除文件和目录等方法

 

posted @ 2019-10-14 14:29  javadongx  阅读(147)  评论(0编辑  收藏  举报

javadong@qq.com