在Java中,流(Stream)是一种用于处理数据的高效编程方式。流操作可以分为输入流(Input Stream)和输出流(Output Stream)。以下是一些常用的流操作:
-
创建流:
- FileInputStream:从文件中读取数据。
- FileOutputStream:将数据写入文件。
- ByteArrayInputStream:从字节数组中读取数据。
- ByteArrayOutputStream:将数据写入字节数组。
- InputStreamReader:从字符流中读取数据。
- OutputStreamWriter:将数据写入字符流。
- BufferedReader:从字符流中按行读取数据。
- BufferedWriter:将数据按行写入字符流。
-
常用流操作:
- close():关闭流,释放资源。
- available():检查流中可用数据的字节数。
- mark():在流中设置一个标记,以便之后可以回到这个位置。
- reset():将流重置到之前设置的标记位置。
- skip(long n):跳过流中的n个字节数据。
- read():从流中读取一个字节的数据。
- read(byte[] b):从流中读取b个字节的数据。
- write(int b):将一个字节的数据写入流。
- write(byte[] b):将b个字节的数据写入流。
- toString():将流转换为字符串。
-
转换流:
- InputStreamReader:将字节流转换为字符流。
- OutputStreamWriter:将字符流转换为字节流。
- BufferedReader:将InputStreamReader转换为BufferedReader,以便按行读取数据。
- BufferedWriter:将OutputStreamWriter转换为BufferedWriter,以便按行写入数据。
-
过滤流:
- InputStreamReader:用于在读取字节流时指定字符编码。
- OutputStreamWriter:用于在写入字节流时指定字符编码。
- BufferedReader:用于按行读取数据,并可以指定字符编码。
- BufferedWriter:用于按行写入数据,并可以指定字符编码。
-
序列流:
- SequenceInputStream:将多个输入流连接成一个输入流。
-
打印流:
- PrintStream:将数据写入输出流,支持格式化输出。
- PrintWriter:将数据写入输出流,支持格式化输出和Unicode字符。
-
对象流:
- ObjectInputStream:从输入流中读取对象。
- ObjectOutputStream:将对象写入输出流。
-
数据流:
- DataInputStream:从输入流中读取基本数据类型和字符串。
- DataOutputStream:将基本数据类型和字符串写入输出流。
-
按位流:
- FileInputStream:用于读取二进制文件。
- FileOutputStream:用于写入二进制文件。
- BufferedInputStream:用于按缓冲区大小读取二进制文件。
- BufferedOutputStream:用于按缓冲区大小写入二进制文件。
这些流操作可以根据需要进行组合使用,以实现更复杂的数据处理任务。