zoukankan      html  css  js  c++  java
  • 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类

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

  • 相关阅读:
    linux系统命令学习系列-用户切换命令su,sudo
    linux系统命令学习系列-用户组管理
    linux系统命令学习-用户管理
    python web开发-flask中sqlalchemy的使用
    python web开发-flask连接sqlite数据库
    python实现bt种子 torrent转magnet
    prefProvider.kt
    douyin-bot-代码
    pyadb关于python操作adb的资料
    bottle源码
  • 原文地址:https://www.cnblogs.com/javadongx/p/java_io.html
Copyright © 2011-2022 走看看