什么是 Java 中的流,以及 Java 流的类型和类?


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

一般来说,流是输入流或输出流。

  • InputStream − 用于从源读取数据。
  • OutputStream − 用于将数据写入目标。

根据它们处理的数据,流有两种类型:

  • 字节流 − 这些流以字节 (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 {
      //Creating an BufferedInputStream object
      BufferedInputStream inputStream = new BufferedInputStream(System.in);
      byte bytes[] = new byte[1024];
      System.out.println("Enter your data ");
      //Reading data from key-board
      inputStream.read(bytes);
      //Creating BufferedOutputStream object
      FileOutputStream out= new FileOutputStream("D:/myFile.txt");
      BufferedOutputStream outputStream = new BufferedOutputStream(out);
      //Writing data to the file
      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

更新于:2019年8月1日

26K+ 浏览量

开启您的 职业生涯

完成课程获得认证

开始学习
广告