Java DataInputStream.read()
方法
原文:https://www.studytonight.com/java-file-io/java-datainputstream-read-method
在本教程中,我们将学习 Java 中 DataInputStream 类的read()
方法。这个方法的工作是从当前输入流中读取字节,并将它们存储在缓冲字节数组中。它是一个非静态方法,在 java.io 包中可用,只能用类对象访问,试图用类名调用它会导致错误。
句法
这是这个方法的语法。它接受 b 作为参数,该参数是字节缓冲区数组,数据将从该流中读入该数组。
public final int read(byte[] b) throws IOException
它返回以整数形式读取的实际字节数,如果到达流的末尾,则返回-1。
示例:用 Java 读取DataInputStream
在本例中,我们使用 read()方法从文件中读取数据,从文件中读取数据后,该方法将数据复制到传递的字节数组中,并返回指示从文件中读取的字节数的整数值。在这个例子中,我们读取了 18 个字节。
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
FileInputStream inputStream = new FileInputStream("E:\\studytonight\\file.txt");
DataInputStream dataInputStream = new DataInputStream(inputStream);
int count = inputStream.available();
byte[] byte_arr = new byte[count];
int bytes = dataInputStream.read(byte_arr);
System.out.println("Total bytes: "+bytes);
for (byte b : byte_arr)
{
System.out.print((char)b);
}
}
}
总字节:18 你好今晚学习
示例 2:使用 Java 中的DataInputStream
读取数据
这里,我们实现了 read()方法的另一个重载方法,在这里,我们可以通过传递 offset(开始指针)和要读取的数据长度来对数据进行切片,而不是从文档中读取整个数据。
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
FileInputStream inputStream = new FileInputStream("E:\\studytonight\\file.txt");
DataInputStream dataInputStream = new DataInputStream(inputStream);
int count = inputStream.available();
byte[] byte_arr = new byte[count];
int bytes = dataInputStream.read(byte_arr, 0, 5);
System.out.println("Total bytes: "+bytes);
for (byte b : byte_arr)
{
System.out.print((char)b);
}
}
}
总字节:5 您好
结论
在本教程中,我们学习了 Java 中 DataInputStream 类的read()
方法,该方法用于从当前输入流中读取字节并将其存储在缓冲字节数组中。它以整数形式返回实际读取的字节数,如果到达流的末尾并且没有更多数据可供读取,则返回-1。