Java ByteArrayInputStream类
原文:https://www.studytonight.com/java-file-io/java-bytearrayinputstream-class
在本教程中,我们将学习 Java 中的ByteArrayInputStream 类。此类用于读取字节数组作为输入流。
ByteArrayInputStream 的缓冲区大小会根据数据自动增长。
句法
这是ByteArrayInputStream 类的语法声明,我们可以看到它继承了InputStream 类。
public class ByteArrayInputStream extends InputStream
Java ByteArrayInputStream类构造器
下表给出了该类的构造器。
| 构造器 | 描述 |
|---|---|
ByteArrayInputStream(byte[] ary) |
创建一个新的ByteArrayInputStream,使用ary 作为其缓冲数组。 |
ByteArrayInputStream(byte[] ary, int offset, int len) |
创建一个新的ByteArrayInputStream,使用ary 作为其缓冲数组,可以从数组中读取多达指定len 字节的数据。 |
Java ByteArrayInputStream类方法
下面提到了这个类的各种方法。
| 方法 | 描述 |
|---|---|
int available() |
此方法用于返回可以从输入流中读取的剩余字节数。 |
int read() |
此方法用于从输入流中读取下一个字节的数据。 |
int read(byte[] ary, int off, int len) |
该方法用于从输入流的字节数组中读取多达len 字节的数据。 |
boolean markSupported() |
此方法用于测试标记和重置方法的输入流。 |
long skip(long x) |
该方法用于从输入流中跳过x 字节的输入。 |
void mark(int readAheadLimit) |
此方法用于设置流中当前标记的位置。 |
void reset() |
此方法用于重置字节数组的缓冲区。 |
void close() |
此方法用于关闭ByteArrayInputStream。 |
Java ByteArrayInputStream示例
在下面的代码中,我们演示了ByteArrayInputStream 类是如何工作的。在这里,我们使用这个类的read()方法从字节数组中读取每个元素,并通过类型转换为字符来打印它,因为默认情况下,它将作为 ASCII 代码出现。
import java.io.ByteArrayInputStream;
import java.io.IOException;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
byte[] buf = {'a', 'b', 'c', 'd', 'e', 'f', 'g'};
ByteArrayInputStream byteArrayIS = new ByteArrayInputStream(buf);
int ch = 0;
while ((ch = byteArrayIS.read()) != -1)
{
System.out.print((char) ch);
}
}
}
abcdefg
结论:
在本文中,我们学习了ByteArrayInputStream 类,这个类用于将字节数组作为流读取。ByteArrayInputStream 的缓冲区大小会根据数据自动增长。