树叶云鸿蒙OS教程:鸿蒙OS ByteArrayOutputStream

ByteArrayOutputStream

java.lang.Object

|—java.io.OutputStream

|—|—java.io.ByteArrayOutputStream

public class ByteArrayOutputStream
extends OutputStream

该类实现了一个输出流,其中的数据被写入一个字节数组。当数据被写入时,缓冲区会自动增长。数据可以用toByteArray()和toString()来检索。

关闭ByteArrayOutputStream没有效果。这个类中的方法可以在流被关闭后被调用而不产生IOException。

Since:

JDK1.0

字段总结

修饰符和类型字段描述
protected byte[]buf存储数据的缓冲区。
protected intcount缓冲区内的有效字节数。

构造函数摘要

构造函数描述
ByteArrayOutputStream()创建一个新的字节数组输出流。
ByteArrayOutputStream(int size)创建一个新的字节数组输出流,其缓冲区的容量为指定的字节数。

方法总结

修饰符和类型方法描述
voidclose()关闭一个ByteArrayOutputStream没有任何效果。
voidreset()将该字节数组输出流的count字段重置为0,这样,输出流中当前累积的所有输出都被丢弃。
intsize()返回缓冲区的当前大小。
byte[]toByteArray()创建一个新分配的字节数组。
StringtoString()将缓冲区的内容转换成字符串,使用平台的默认字符集对字节进行解码。
StringtoString(int hibyte)弃用。这个方法不能正确地将字节转换成字符。从JDK 1.1开始,首选的方法是通过toString(String enc)方法,它需要一个编码名称参数,或者通过toString()方法,它使用平台的默认字符编码。
StringtoString(String charsetName)通过使用指定的字符集对字节进行解码,将缓冲区的内容转换为字符串。
voidwrite(byte[] b, int off, int len)从偏移量off处开始,将指定的字节数的len字节写到这个字节数的输出流中。
voidwrite(int b)将指定的字节写入这个字节数组的输出流中。
voidwriteTo(OutputStream out)将此字节数组输出流的全部内容写入指定的输出流参数,就像使用out.write(buf, 0, count)调用输出流的写入方法一样。
从java.lang.Object类继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
从java.io.OutputStream类继承的方法
flush, write

字段详细信息

buf

protected byte[] buf

存储数据的缓冲区。

count

protected int count

缓冲区内的有效字节数。

构造函数详细信息

ByteArrayOutputStream

public ByteArrayOutputStream()

创建一个新的字节数组输出流。缓冲区的容量最初为32字节,但如果有必要,其大小会增加。

ByteArrayOutputStream

public ByteArrayOutputStream(int size)

创建一个新的字节数组输出流,其缓冲区的容量为指定的字节数。

参数。

参数名称参数描述
size初始尺寸。

Throws:

Throw名称Throw描述
IllegalArgumentException如果尺寸为负数。

方法详情

write

public void write(int b)

将指定的字节写入这个字节数组的输出流中。

指定的是:

write in class OutputStream

参数。

参数名称参数描述
b要写入的字节。

write

public void write(byte[] b, int off, int len)

从偏移量off开始,将指定字节数的len字节写到这个字节数的输出流中。

重写:

write in class OutputStream

参数:

参数名称参数描述
b数据。
off数据中的起始偏移。
len要写入的字节数。

writeTo

public void writeTo(OutputStream out) throws IOException

将此字节数组输出流的全部内容写入指定的输出流参数,就像使用out.write(buf, 0, count)调用输出流的写入方法一样。

参数。

参数名称参数描述
out要写入数据的输出流。

Throws:

Throw名称Throw描述
IOException如果发生I/O错误。

reset

public void reset()

将这个字节数组输出流的count字段重置为0,这样,输出流中当前积累的所有输出都被丢弃了。该输出流可以再次使用,重新使用已经分配的缓冲空间。

toByteArray

public byte[] toByteArray()

创建一个新分配的字节数组。它的大小是这个输出流的当前大小,缓冲区的有效内容已经被复制到它里面。

返回。

这个输出流的当前内容,作为一个字节数组。

size

public int size()

返回缓冲区的当前大小。

返回:

count 字段的值,即此输出流中的有效字节数。

toString

public String toString()

使用平台的默认字符集将缓冲区的内容转换为字符串解码字节。 新字符串的长度是字符集的函数,因此可能不等于缓冲区的大小。

此方法始终使用平台默认字符集的默认替换字符串替换格式错误的输入和不可映射的字符序列。 当需要对解码过程进行更多控制时,应使用 CharsetDecoder 类。

覆盖:

类 Object 中的 toString

返回:

从缓冲区内容解码的字符串。

Since:

JDK1.1

toString

public String toString(String charsetName) throws UnsupportedEncodingException

通过使用命名字符集解码字节,将缓冲区的内容转换为字符串。 新字符串的长度是字符集的函数,因此可能不等于字节数组的长度。

此方法始终使用此字符集的默认替换字符串替换格式错误的输入和不可映射的字符序列。 当需要对解码过程进行更多控制时,应使用 CharsetDecoder 类。

参数:

参数名称参数描述
charsetName支持的字符集的名称

返回:

从缓冲区内容解码的字符串。

Throws:

Throw名称Throw描述
UnsupportedEncodingException如果不支持命名字符集

Since:

JDK1.1

toString

@Deprecated public String toString(int hibyte)

已弃用。 此方法不能正确地将字节转换为字符。 从 JDK 1.1 开始,执行此操作的首选方法是通过 toString(String enc) 方法,该方法接受一个 encoding-name 参数,或 toString() 方法,该方法使用平台的默认字符编码。

创建一个新分配的字符串。 它的大小是输出流的当前大小,并且缓冲区的有效内容已被复制到其中。 结果字符串中的每个字符 c 都是从字节数组中的相应元素 b 构造的,这样:

     c == (char)(((hibyte & 0xff) << 8) | (b & 0xff)) 

参数:

参数名称参数描述
hibyte每个生成的 Unicode 字符的高字节。

返回:

输出流的当前内容,作为字符串。

close

public void close() throws IOException

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

指定者:

在接口 AutoCloseable 中关闭

指定者:

在接口Closeable中关闭

覆盖:

在类 OutputStream 中关闭

Throws:

Throw名称Throw描述
IOException如果发生 I/O 错误。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/161482.html<

(0)
运维的头像运维
上一篇2025-03-18 06:05
下一篇 2025-03-18 06:07

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注