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