zoukankan      html  css  js  c++  java
  • Java基础回顾 —I/O

    1. Java io中最重要的就是5个类和1个接口:
      5个类:File、OutputStream、InputStream、Writer、Reader
      1个接口:Serializable
    2. File类是针对文件本身的操作,如果要对文件内容进行操作,需要使用RandonAccessFile类,此类属于随机读取类
    3. 字节流主要操作byte数据类型,以byte数组为准,主要是InputStream 和 OutputStream类。
    4. 一个字符等于两个字节,字符流主要有Reader和Writer两个操作类。
    5. 字节流比字符流会更好一些:因为所有文件在硬盘或在传输的时候都是通过字节的方式进行的,包括图片等都是按照字节的形式存储的,而字符只有在内存中才会形成,所有开发中字节流会用的更广泛一些。
    6. 转换流是字节流与字符流的转换类。OutputStreamWriter是Writer的子类,将输出的字符流变为字节流。InputStreamReader是Reader的子类,将输入的字节流变为字符流。
    7. 内存操作流:
      ByteArrayOutputStream -- 此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。
      ByteArrayInputStream -- 包含一个内部缓冲区,该缓冲区包含从流中读取的字节且支持 mark 和 reset 方法的能力。
      一般在生成临时信息时才会使用,且关闭没有作用
    8. 管道流主要是可以进行两个线程之间的通信:
      PipeOutputStream -- 可以将管道输出流连接到管道输入流来创建通信管道。管道输出流是管道的发送端。通常,数据由某个线程写入. PipedOutputStream 对象,并由其他线程从连接的 PipedInputStream 读取。
      PipeInputStream -- 管道输入流应该连接到管道输出流;管道输入流提供要写入管道输出流的所有数据字节。
    9. 打印流是输出信息最方便的类:PrintStream和PrintWriter
    10. System类对IO的支持:System类中有三个常量PrintStream out、PrintStream error和InputStream in
    11. 缓冲流可以从缓冲区读写内容:
      BufferedOutputStream -- 该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统(内部有存储数据的缓冲区)。
      BufferedInputStream -- 创建 BufferedInputStream 时,会创建一个内部缓冲区数组。为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。
    12. 数据操作流与平台无关(主要针对Java基本数据类型的读写操作):
      DataOutputStream -- 数据输出流允许应用程序以适当方式将基本Java数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。
      DataInputStream -- 从底层输入流中读取基本Java数据类型。
    13. 合并流主要将两个文件合并成一个文件:
      SequenceInputStream -- 它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。
    14. 压缩流为了减少传输时数据量提供专门的压缩流:ZipFile、ZipOutputStream、ZipInputStream和ZipEntry。
    15. 回退流可以把读取进来的某些数据重新退回到输入流中,不需要经过额外的程序去清理不需要的内容:PushbackInputStream 和 PushbackReader。

    Git IO code

  • 相关阅读:
    浅谈模块化开发
    用gulp搭建并发布自己的cli脚手架
    取值运算符新用法
    vue双向绑定之简易版
    获取对象属性之括号方式
    前端格式化工具之Prettier
    git操作之摘樱桃
    Sort
    MongoDB
    项目使用本地的包
  • 原文地址:https://www.cnblogs.com/nextStep/p/6691140.html
Copyright © 2011-2022 走看看