Java ByteArrayInputStream
精华
小牛编辑
105浏览
2023-03-14
1 什么是Java ByteArrayInputStream
ByteArrayInputStream由两个词组成:ByteArray和InputStream。顾名思义,它可用于读取字节数组作为输入流。
Java ByteArrayInputStream 类包含一个内部缓冲区,该缓冲区用于读取字节数组作为流。在此流中,从字节数组中读取数据。
ByteArrayInputStream的缓冲区根据数据自动增长。
2 Java ByteArrayInputStream的语法
public class ByteArrayInputStream extends InputStream
3 Java ByteArrayInputStream的构造方法
构造方法 | 描述 |
---|---|
ByteArrayInputStream(byte[] ary) | 创建一个新的字节数组输入流,该输入流使用ary作为其缓冲区数组。 |
ByteArrayInputStream(byte[] ary, int offset, int len) | 创建一个新的字节数组输入流,该输入流使用ary作为其缓冲区数组,该数组可以从数组中读取指定的len字节数据。 |
4 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。 |
5 Java ByteArrayInputStream的例子
让我们看一个简单的java ByteArrayInputStream类示例,以读取字节数组作为输入流。
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java ByteArrayInputStream的例子
*/
import java.io.*;
public class Demo {
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: &