• javaIO的类备忘


    Java类库中的I/O类分成输入和输出两部分,通过继承,任何自InputStream或Reader派生而来的类都含有名为read()的基本方法,用于读取单个字节或字节数组;同样,任何自OutputStream或Writer派生的类都含有名为write()的方法,用于写单个字节或字节数组。

    我们很少使用单一的类来创建流对象,而是通过叠合多个对象来提供所期望的功能(装饰器模式)。

    InputStream的作用是用来表示那些从不同数据源产生输入的类。

    InputStream类型
    数据源类别 功能 来源和去除
    ByteArrayInputStream 字节数组 允许将内存的缓冲区当做InputStream CharArrayReader
    StringBufferInputStream(已弃用) String对象 将String转换成InputStream StringReader
    FileInputStream 文件 用于从文件中读取信息 FileReader
    PipedInputStream 管道 产生用于写入相关PipedOutputStream的数据,实现管道化概念 PipedReader
    SequenceInputStream 其他种类流组成的序列,以便合并流 将两个或者多个InputStream对象转换成单一InputStream
    FilterInputStream 其他数据源,如Internet连接 抽象类,作为装饰器的接口 FilterReader
    FilterInputStream类型
      功能 来源和去处
    DataInputStream   按照可移植方式从流读取基本数据类型 除了readLine(),则仍正常使用DataInputStream
    BufferedInputStream   防止每次都得进行实际写操作,代表使用缓冲区 BufferedReader
    LineNumberInputStream(已弃用)   跟踪输入流中的行号,可调用getLineNumber()和setLineNumber() LineNumberReader
    PushbackInputStream  

    具有“能弹出一个字节的缓冲区”。因此可以将督导的最后一个字符回退

     PushbackReader

    OutputStream类型
      功能 来源和去处
    ByteArrayOutputStream   在内存中创建缓冲区,所有送往流的数据都要放置在此缓冲区中 CharArrayWriter
    FileOutputStream   用于将信息写至文件 FileWriter
    PipedOutputStream   任何写入其中的信息都会自动作为相关PipedOutputStream的输出,实现管道化概念 PipedWriter
    FilterOutputStream   抽象类,作为装饰器的接口 FilterWriter
          (无对应类)StringWriter
    FilterOutputStream
      功能 来源和去处
    DataOutputStream   同InputStream
    PrintStream   用于产生格式化输出,其中DataOutputStream处理数据的存储,PrintStream处理显示 PrintWriter
    BufferedOutputStream   避免每次都实际写,可以调用flush清空缓冲区 BufferedWriter
          StreamTokenizer(使用Reader的构造器)

    Reader和Writer主要是为了国际化,老的I/O仅支持8位的字节流,不能很好地处理16位的Unicode字符。

    InputStream和OutputStream向Reader和Writer的转换用到了"适配器",InputStreamReader,OutputStreamWriter

    * 尽量尝试用Reader和Writer,而一旦无法成功编译,则使用面向字节的类库,如java.util.zip是面向字节的

    * 无论何时使用readLine(),都不应该使用DataInputStream,而应该使用BufferedReader


    RandomAccessFile适用于由大小已知的记录组成的文件。

    实现了InputStream和OutputStream接口,但未适用它们的任何功能,它是一个完全独立的类

    只有RandomAccessFile支持搜寻方法,并且只适用于文件。

  • 相关阅读:
    Netty实战
    ObjectTools反射实例
    SpringBoot新增监听器Listener
    拦截器(Inteceptor),过滤器(Filter),切面(Aspect)处理HttpServiceReqeust请求
    Linux CentOS7.2下安装Redis && 配置Redis开机自启动
    JVM命令行工具&垃圾收集器&垃圾收集策略思维导图
    Redis总结
    Java自定义注解的实现
    反射实例
    系统管理员常用的Linux命令
  • 原文地址:https://www.cnblogs.com/fengbeihong/p/2840407.html
Copyright © 2020-2023  润新知