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
的缓冲区大小会根据数据自动增长。