java中IO流有哪些?

一、按数据流向:输入流和输出流

输入和输出都是从程序的角度来说的。

输入流:数据流向程序

输出流:数据从程序流出。
    

二、按处理单位:字节流和字符流

字节流:一次读入或读出是8位二进制

字符流:一次读入或读出是16位二进制

JDK 中后缀是 Stream 是字节流;后缀是 Reader,Writer 是字符流


三、按功能功能:节点流和处理流

节点流:直接与数据源相连,读入或写出

处理流:与节点流一块使用,在节点流的基础上,再套接一层

 

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

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

  1. InputStream:FileInputStream、PipedInputStream、ByteArrayInputStream、BufferedInputstream、SequenceInputStream、DataInputStream、ObjectInputStream
  2. OutputStream:FileOutputStream、PipedOutputStream、ByteArrayOutputStream、BufferedOutputStream、DataOutputStream、ObjectOutputStream、PrintStream
  3. Reader:FileReader、PipedReader、CharArrayReader、BufferedReader、InputStreamReader
  4. Writer:FileWriter、PipedWriter、CharArrayWriter、BufferedWriter、InputStreamWriter、PrintWriter

 

常用的流

  1. 对文件进行操作:FileInputStream(字节输入流)、FileOutputStream(字节输出流)、FileReader(字符输入流)、FileWriter(字符输出流)
  2. 对管道进行操作:PipedInputStream(字节输入流)、PipedOutStream(字节输出流)、PipedReader(字符输入流)、PipedWriter(字符输出流)
  3. 字节/字符数组:ByteArrayInputStream、ByteArrayOutputStream、CharArrayReader、CharArrayWriter
  4. Buffered 缓冲流:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter
  5. 字节转化成字符流:InputStreamReader、OutputStreamWriter
  6. 数据流:DataInputStream、DataOutputStream
  7. 打印流:PrintStream、PrintWriter
  8. 对象流:ObjectInputStream、ObjectOutputStream
  9. 序列化流:SequenceInputStream