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(字符输出流)
- 字节/字符数组:ByteArrayInputStream、ByteArrayOutputStream、CharArrayReader、CharArrayWriter
- Buffered 缓冲流:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter
- 字节转化成字符流:InputStreamReader、OutputStreamWriter
- 数据流:DataInputStream、DataOutputStream
- 打印流:PrintStream、PrintWriter
- 对象流:ObjectInputStream、ObjectOutputStream
- 序列化流:SequenceInputStream