什么是流?Java 中流的类型和类有哪些?

java 8object oriented programmingprogramming更新于 2025/9/19 20:28:17

Java 提供 I/O 流来读写数据,其中流表示输入源或输出目标,可以是文件、I/O 设备或其他程序等。

通常,流可以是输入流或输出流。

  • 输入流 − 用于从源读取数据。
  • 输出流 − 用于将数据写入目标。

根据处理的数据,流可分为两种类型 −

  • 字节流 − 它们以字节(8 位)为单位处理数据,即字节流类读取/写入 8 位数据。使用它们,您可以存储字符、视频、音频、图像等。
  • 字符流 − 它们处理 16 位 Unicode 数据。使用它们,您只能读写文本数据。

下图展示了 Java 中的所有输入和输出流(类)。

标准流

除了上述类之外,Java 还提供了 3 个标准流,分别代表输入和输出设备。

  • 标准输入 −这用于通过输入设备从用户读取数据。键盘用作标准输入流,表示为 System.in。
  • 标准输出 − 这用于通过输出设备将数据(结果)投射给用户。计算机屏幕用作标准输出流,表示为 System.out。
  • 标准错误 − 这用于输出用户程序产生的错误数据,通常计算机屏幕用作标准错误流,表示为 System.err。

示例

以下 Java 程序使用 BufferedInputStream 从用户读取数据,并使用 BufferedOutputStream 将其写入文件。

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class BufferedInputStreamExample {
   public static void main(String args[]) throws IOException {
      //创建 BufferedInputStream 对象
      BufferedInputStream inputStream = new BufferedInputStream(System.in);
      byte bytes[] = new byte[1024];
      System.out.println("输入您的数据");
      //从键盘读取数据
      inputStream.read(bytes);
      //创建 BufferedOutputStream 对象
      FileOutputStream out= new FileOutputStream("D:/myFile.txt");
      BufferedOutputStream outputStream = new BufferedOutputStream(out);
      //将数据写入文件
      outputStream.write(bytes);
      outputStream.flush();
      System.out.println("Data successfully written in the specified file");
   }
}

输出

Enter your data
Hi welcome to Tutorialspoint ....
Data successfully written in the specified file

相关文章