Java教程

Java ByteArrayInputStream

ByteArrayInputStream由两个词组成: ByteArray和InputStream。顾名思义,它可以用来读取字节array作为输入流。
Java ByteArrayInputStream包含一个内部缓冲区,用于 读取字节数组作为流。在此流中,从字节数组中读取数据。
ByteArrayInputStream的缓冲区会根据数据自动增长。

Java ByteArrayInputStream类声明

让我们看看Java.io.ByteArrayInputStream类的声明:
public class ByteArrayInputStream extends InputStream

Java ByteArrayInputStream类构造函数

构造函数 说明
ByteArrayInputStream(byte [] ary) 创建一个新的字节数组输入流,该输入流使用 ary 作为其缓冲区数组。
ByteArrayInputStream(byte[] ary, int offset, int len) 创建一个新的字节数组输入流,该输入流使用 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的示例

让我们看一下java ByteArrayInputStream类的简单示例读取字节数组作为输入流。
package com.lidihuo;
import java.io.*;
public class ReadExample {
    public static void main(String[] args) throws IOException {
        byte[] buf = {35, 36, 37, 38 };
        ByteArrayInputStream byt = new ByteArrayInputStream(buf);
        int k = 0;
        while ((k = byt.read()) != -1) {
             char ch = (char) k;
            System.out.println("ASCII value of Character is:" + k + "; Special character is: " + ch);
        }
    }
}
输出:
ASCII value of Character is:35;
Special character is: #ASCII value of Character is:36;
Special character is: $ASCII value of Character is:37;
Special character is: %ASCII value of Character is:38;
Special character is: &
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4