codecamp

鸿蒙OS ByteArrayInputStream

ByteArrayInputStream

java.lang.Object

|---java.io.InputStream

|---|---java.io.ByteArrayInputStream

public class ByteArrayInputStream
extends InputStream

ByteArrayInputStream 包含一个内部缓冲区,其中包含可以从流中读取的字节。 内部计数器跟踪读取方法提供的下一个字节。

关闭 ByteArrayInputStream 无效。 可以在流关闭后调用此类中的方法,而不会生成 IOException。

Since:

JDK1.0

字段摘要

修饰符和类型 字段 描述
protected byte[] buf 由流的创建者提供的字节数组。
protected int count 比输入流缓冲区中最后一个有效字符大一的索引。
protected int mark 流中当前标记的位置。
protected int pos 要从输入流缓冲区读取的下一个字符的索引。

构造函数摘要

构造函数 描述
ByteArrayInputStream(byte[] buf) 创建一个ByteArrayInputStream,使其使用buf作为其缓冲区阵列。
ByteArrayInputStream(byte[] buf, int offset, int length) 创建ByteArrayInputStream,使用buf作为其缓冲区阵列。

方法总结

修饰符和类型 方法 描述
int available() 返回可以从该输入流中读取(或跳过)的剩余字节数。
void close() 关闭一个ByteArrayInputStream没有任何效果。
void mark(int readAheadLimit) 设置流中的当前标记位置。
boolean markSupported() 测试这个InputStream是否支持mark/reset。
int read() 从这个输入流中读取下一个字节的数据。
int read(byte[] b, int off, int len) 从这个输入流中读取最多为len字节的数据到一个字节数组。
void reset() 将缓冲区重置到标记位置。
long skip(long n) 从这个输入流中跳过n个字节的输入。
从java.io.InputStream类继承的方法
read
从java.lang.Object类继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

字段详细信息

buf

protected byte[] buf

一个由流的创建者提供的字节数组。buf[0]到buf[count-1]元素是唯一可以从流中读取的字节;buf[pos]元素是下一个要读取的字节。

count

protected int count

比输入流缓冲区中最后一个有效字符大一的索引。这个值应该总是非负的,并且不大于buf的长度。它比可以从输入流缓冲区读取的buf中最后一个字节的位置大一。

mark

protected int mark

当前在流中标记的位置。ByteArrayInputStream对象在构造时默认标记在零位置。它们可以通过mark()方法标记在缓冲区的另一个位置。当前的缓冲区位置被reset()方法设置为这个点。

如果没有设置标记,那么标记的值就是传递给构造函数的偏移量(如果没有提供偏移量,则为0)。

Since:

JDK1.1

pos

protected int pos

从输入流缓冲区读取下一个字符的索引。这个值应该总是非负的,并且不大于count的值。要从输入流缓冲区读取的下一个字节将是buf[pos]。

构造函数详细信息

ByteArrayInputStream

public ByteArrayInputStream(byte[] buf)

创建一个ByteArrayInputStream,使其使用buf作为其缓冲区阵列。缓冲区数组不会被复制。pos的初始值是0,count的初始值是buf的长度。

参数。

参数名称 参数描述
buf 输入缓冲区。

ByteArrayInputStream

public ByteArrayInputStream(byte[] buf, int offset, int length)

创建ByteArrayInputStream,使用buf作为其缓冲阵列。pos的初始值是offset,count的初始值是offset+length和buf.length的最小值。缓冲区数组不被复制。缓冲区的标记被设置为指定的偏移量。

参数。

参数名称 参数描述
buf 输入缓冲区。
offset 要读取的第一个字节在缓冲区的偏移量。
length 从缓冲区读取的最大字节数。

方法详情

read

public int read()

从这个输入流中读取下一个字节的数据。字节值以0-255范围内的一个int形式返回。如果因为已经到达流的末端而没有可用的字节,将返回值-1。

这个读取方法不能阻塞。

指定的对象:

read in class InputStream

返回:

下一个字节的数据,或者如果已经到达了流的末端,则返回-1。

read

public int read(byte[] b, int off, int len)

从这个输入流中读取最多为len字节的数据到一个字节数组。如果pos等于count,则返回-1,表示文件结束。否则,读取的字节数k等于len和count-pos中较小的那个。如果k是正数,那么buf[pos]到buf[pos+k-1]的字节将以System.arraycopy的方式被复制到b[off]到b[off+k-1]。数值k被添加到pos中,k被返回。

这个读取方法不能阻塞。

重写。

read 在类InputStream中

参数。

参数名称 参数描述
b 读取数据的缓冲区。
off 目的数组中的起始偏移量 b
len 读取的最大字节数。

返回:

读入缓冲区的总字节数,如果没有更多的数据,因为已经达到了流的终点,则返回-1。

Throws:

Throw名称 Throw描述
NullPointerException 如果b为空。
IndexOutOfBoundsException 如果off为负数,len为负数,或者len大于b.length - off

skip

public long skip(long n)

从这个输入流中跳过n个字节的输入。如果到了输入流的末端,可能会跳过更少的字节。被跳过的实际字节数k等于n和count-pos中的较小值。k的值被加到pos中,k被返回。

覆盖。

skip in class InputStream

参数。

参数名称 参数描述
n 要跳过的字节数。

返回:

实际跳过的字节数。

available

public int available()

返回可以从该输入流中读取(或跳过)的剩余字节数。

返回的值是count - pos,即从输入缓冲区读出的剩余字节数。

重写:

在类InputStream中可用

返回:

可以从这个输入流中读取(或跳过)的剩余字节数,不存在阻塞问题。

markSupported

public boolean markSupported()

测试这个InputStream是否支持mark/reset。ByteArrayInputStream的markSupported方法总是返回true。

重写:

markSupported in class InputStream

返回:

true 如果这个流实例支持mark和reset方法;否则false。

Since:

JDK1.1

mark

public void mark(int readAheadLimit)

设置流中的当前标记位置。ByteArrayInputStream对象在构造时默认被标记在0的位置。他们可以通过这个方法在缓冲区内的其他位置进行标记。

如果没有设置标记,那么标记的值就是传递给构造函数的偏移量(如果没有提供偏移量则为0)。

注意:这个类的readAheadLimit没有意义。

重写:

mark in class InputStream

参数:

参数名称 参数描述
readAheadLimit 在标记位置变得无效之前可以读取的最大限制字节数。

Since:

JDK1.1

reset

public void reset()

将缓冲区重置到标记的位置。标记的位置是0,除非标记了另一个位置或者在构造函数中指定了一个偏移。

重述:

reset in class InputStream

close

public void close() throws IOException

关闭ByteArrayInputStream没有效果。该类中的方法可以在流关闭后调用,而不会生成IOException。

规定:

关闭接口自动关闭

规定:

close in interface可关闭

覆盖:

在类InputStream中关闭

Throws:

Throw名称 Throw描述
IOException 如果发生I/O错误。
鸿蒙OS BufferedWriter
鸿蒙OS ByteArrayOutputStream
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }