InputStream字节输入流

InputStream字节输入流

InputStream (抽象类)
    ├── FileInputStream
    ├── ByteArrayInputStream
    ├── PipedInputStream
    ├── FilterInputStream
    │       ├── BufferedInputStream
    │       ├── DataInputStream
    │       └── PushbackInputStream
    ├── ObjectInputStream
    └── SequenceInputStream

InputStream 是 Java 中用于读取字节数据的抽象类,它是所有字节输入流的基类。InputStream 提供了从输入源(如文件、网络连接、内存等)读取字节数据的基本方法

常用方法

  1. int read()

    • 从输入流中读取一个字节的数据

    • 返回值: 返回读取的字节(0 到 255 之间的整数)。如果到达流的末尾,则返回 -1

      InputStream input = new FileInputStream("example.txt");
      int data = input.read(); // 读取一个字节
      while (data != -1) {
          System.out.print((char) data); // 将字节转换为字符并打印
          data = input.read(); // 继续读取下一个字节
      }
      input.close();
      
  2. int read(byte[] b)

    • 从输入流中读取一定数量的字节,并将其存储到字节数组 b 中

    • 返回值: 返回实际读取的字节数。如果到达流的末尾,则返回 -1

      InputStream input = new FileInputStream("example.txt");
      byte[] buffer = new byte[1024]; // 创建一个缓冲区
      int bytesRead = input.read(buffer); // 读取数据到缓冲区
      while (bytesRead != -1) {
          System.out.write(buffer, 0, bytesRead); // 处理读取的数据
          bytesRead = input.read(buffer); // 继续读取
      }
      input.close();
      
  3. void close()

    • 关闭输入流并释放与之关联的系统资源
    • 使用完流后必须调用此方法,以避免资源泄漏

InputStream 的常用子类

  1. FileInputStream: 用于从文件中读取字节数据
  2. BufferedInputStream: 提供缓冲功能,提高读取效率
  3. ObjectInputStream: 用于读取对象(反序列化)
posted @ 2025-03-17 21:02  QAQ001  阅读(35)  评论(0)    收藏  举报