📅  最后修改于: 2023-12-03 15:01:52.495000             🧑  作者: Mango
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() 方法是一种可靠地从字节流中读取字节数组的方法,它可以确保在读取指定长度的字节之前不会返回。此方法对于从数据流中读取精确大小的数据非常有用,例如网络数据包或文件读取。