java 中 IO 流

  • 按数据流向:输入流和输出流
    输入和输出都是从程序的角度来说的。输入流:数据流向程序;输出流:数据从程序流出。

  • 按处理单位:字节流和字符流
    字节流:一次读入或读出是8位二进制;字符流:一次读入或读出是16位二进制。
    JDK中后缀是Stream是字节流;后缀是Reader,Writer是字符流。

  • 按功能功能:节点流和处理流
    节点流:直接与数据源相连,读入或写出;处理流:与节点流一块使用,在节点流的基础上,再套接一层。

最根本的四大类:InputStream(字节输入流),OutputStream(字节输出流),Reader(字符输入流),Writer(字符输出流)

四大类的扩展,按处理单位区分

  • InputStream: FileInputStream、PipedInputStream、ByteArrayInputStream
    BufferedInputstream、SequenceInputStream、DataInputStream、ObjectInputStream

  • OutputStream:FileOutputStream、PipedOutputStream、ByteArrayOutputStream
    BufferedOutputStream、DataOutputStream、ObjectOutputStream、PrintStream

  • Reader: FileReader、PipedReader、CharArrayReader
    BufferedReader、InputStreamReader

  • Writer: FileWriter、PipedWriter、CharArrayWriter
    BufferedWriter、InputStreamWriter、PrintWriter

常用的流

  • 对文件进行操作:FileInputStream(字节输入流)、FileOutputStream(字节输出流)、FileReader(字符输入流)、FileWriter(字符输出流)

  • 对管道进行操作:PipedInputStream(字节输入流)、PipedOutStream(字节输出流)、PipedReader(字符输入流)、PipedWriter(字符输出流)。
    PipedInputStream的一个实例要和PipedOutputStream的一个实例共同使用、共同完成管道的读取写入操作。主要用于线程操作。

  • 字节/字符数组:ByteArrayInputStream、ByteArrayOutputStream、CharArrayReader、CharArrayWriter是在内存中开辟了一个字节或字符数组。
    Buffered缓冲流::BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter
    带缓冲区的处理流、缓冲区的作用的主要目的是:避免每次和硬盘打交道、提高数据访问的效率。

  • 字节转化成字符流:InputStreamReader、OutputStreamWriter

  • 数据流:DataInputStream、DataOutputStream
    数据流可以直接输出float类型或long类型、提高了数据读写的效率

  • 打印流:printStream、printWriter

  • 对象流:ObjectInputStream、ObjectOutputStream

  • 序列化流:SequenceInputStream

posted @ 2022-04-20 10:04  骆驼f  阅读(25)  评论(0)    收藏  举报