📌  相关文章
📜  Java中的 DataInputStream readFully() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:01:52.495000             🧑  作者: Mango

Java中的 DataInputStream readFully() 方法及示例

简介

DataInputStream readFully() 方法是Java流式输入输出中的一种方法。它可以从输入流中读取指定长度的字节数组,并将其存储到指定的缓冲区中。此方法保证在读取指定长度的字节之前不会返回。

方法签名
public final void readFully(byte[] b, int off, int len) throws IOException
  • 参数解释:

    • b:字节数组缓冲区。
    • off:从此缓冲区的哪个元素开始存储读取的字节。
    • len:读取的最大字节数。

    注意:如果剩余的字节数小于len,该方法将抛出EOFException。

  • 返回值:无

使用示例

以下示例演示了如何使用readFully()方法读取字节流并将其存储到字节数组缓冲区中。

import java.io.*;

public class DataInputStreamExample {
   public static void main(String args[]) throws IOException {

      String str = "Hello World!";
      byte[] buffer = new byte[str.length()];
      
      // 创建一个新的ByteArrayInputStream流
      ByteArrayInputStream inStream = new ByteArrayInputStream(str.getBytes());

      // 创建一个新的DataInputStream流
      DataInputStream dataInStream = new DataInputStream(inStream);

      // 使用readFully()方法读取字节流并存储到缓冲区中
      dataInStream.readFully(buffer, 0, buffer.length);

      // 输出缓冲区中存储的字符串
      System.out.println("读取到的字符串是: " + new String(buffer));
      
      // 关闭输入流
      inStream.close();
      
      // 关闭数据输入流
      dataInStream.close();
   }
}
  • 示例结果:
读取到的字符串是: Hello World!
总结

DataInputStream readFully() 方法是一种可靠地从字节流中读取字节数组的方法,它可以确保在读取指定长度的字节之前不会返回。此方法对于从数据流中读取精确大小的数据非常有用,例如网络数据包或文件读取。