Java ByteArrayInputStream.read()
方法
原文:https://www.studytonight.com/java-file-io/java-bytearrayinputstream-read-method
在本教程中,我们将学习 Java 中Bytearrainputstream类的read()
方法。这个方法读取 ByteArrrayInputStream 的下一个字节,并且一次只从流中读取一个字节。这是一个非静态方法,在 java.io 包中可用,只能使用类对象访问。读取字节时,它可能会引发异常。
语法:
这是此方法的语法声明。它不接受任何参数,并返回以整数形式读取的字节。如果它到达流的末尾,它将返回-1。
public int read()
示例:ByteArrayInputStream
读取()方法
我们使用 read()方法从缓冲区中读取数据,这个方法将返回 ASCII 码格式的整数,如果数据是字符形式,那么我们需要相应地输入大小写。
import java.io.ByteArrayInputStream;
import java.io.IOException;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
byte[] buf = {1, 2, 3, 4, 5};
ByteArrayInputStream byteArrayInputStr = new ByteArrayInputStream(buf);
int b = 0;
while ((b = byteArrayInputStr.read()) != -1)
{
System.out.print(" " + b);
}
}
}
1 2 3 4 5
示例:ByteArrayInputStream
读取()方法
这里我们使用了 read 方法的另一个重载方法,它接受三个参数,第一个参数是我们想要存储数据的缓冲区,第二个参数是开始读取的起始位置,我们也称之为偏移量,第三个参数是数据的长度。
import java.io.ByteArrayInputStream;
import java.io.IOException;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
byte[] buf = {4, 8, 12, 16};
ByteArrayInputStream byteArrayInputStr = new ByteArrayInputStream(buf);
byte[] b = new byte[2];
int total_bytes = byteArrayInputStr.read(b, 0, 2);
System.out.println("Total bytes read: " + total_bytes);
for (byte ch : b)
{
System.out.print(ch+" ");
}
}
}
读取的总字节数:2 4 8
结论:
在本教程中,我们学习了 Java 中Bytearrainputstream类的read()
方法,该方法用于读取当前输入流的下一个字节,一次读取一个字节,并以整数的形式返回读取的字节,如果到达流的末尾,则返回-1。