流(Stream)是用于处理输入和输出(I/O,输入是I输出是O)的一种抽象概念,主要分为两大类字节流(Byte Streams)和字符流(Character Streams),每种流又分为输入流(Input Streams)和输出流(Output Streams)
1.字节流(Byte Streams)
字节流用于处理二进制数据,如图像、音频文件等。它们继承自 InputStream
和 OutputStream
输入流(InputStream)
- FileInputStream:从文件中读取字节。
- ByteArrayInputStream:从字节数组中读取字节。
- BufferedInputStream:带缓冲的输入流,提高读取效率。
- DataInputStream:可以从输入流中读取基本数据类型(如 int, double 等)。
- ObjectInputStream:可以从输入流中读取对象。
输出流(OutputStream)
- FileOutputStream:将字节写入文件。
- ByteArrayOutputStream:将字节写入字节数组。
- BufferedOutputStream:带缓冲的输出流,提高写入效率。
- DataOutputStream:可以将基本数据类型(如 int, double 等)写入输出流。
- ObjectOutputStream:可以将对象写入输出流。
2.字符流(Character Streams)
字符流用于处理文本数据,它们继承自 Reader
和 Writer
输入流(Reader)
- FileReader:从文件中读取字符。
- CharArrayReader:从字符数组中读取字符。
- BufferedReader:带缓冲的字符输入流,提高读取效率。
- InputStreamReader:将字节流转换为字符流。
- StringReader:从字符串中读取字符。
输出流(Writer)
- FileWriter:将字符写入文件。
- CharArrayWriter:将字符写入字符数组。
- BufferedWriter:带缓冲的字符输出流,提高写入效率。
- OutputStreamWriter:将字符流转换为字节流。
- StringWriter:将字符写入字符串。
除了这些流以外还有一些 辅助流和高级流,这里就不罗列了