当前位置: 首页 > 教程 > Java IO流 >

Java ByteArrayOutputStream

精华
小牛编辑
100浏览
2023-03-14

1 什么是Java ByteArrayOutputStream

Java ByteArrayOutputStream 类用于将公共数据写入多个文件。在此流中,数据被写入一个字节数组,该字节数组以后可以写入多个流。

ByteArrayOutputStream保存数据的副本,并将其转发到多个流。

ByteArrayOutputStream的缓冲区根据数据自动增长。

2 Java ByteArrayOutputStream的语法

public class ByteArrayOutputStream extends OutputStream  

3 Java ByteArrayOutputStream的构造方法

构造方法 描述
ByteArrayOutputStream() 创建一个新的字节数组输出流,其初始容量为32字节,不过如果需要,其大小也会增加。
ByteArrayOutputStream(int size) 创建一个新的字节数组输出流,具有指定大小的缓冲区容量(以字节为单位)。

4 Java ByteArrayOutputStream的方法

方法 描述
int size() 用于返回缓冲区的当前大小。
byte[] toByteArray() 用于创建新分配的字节数组。
String toString() 用于使用平台默认字符集将内容转换为解码字节的字符串。
String toString(String charsetName) 用于使用指定的charsetName将内容转换为解码字节的字符串。
void write(int b) 用于将指定的字节写入字节数组输出流。
void write(byte[] b, int off, int len) 用于写入len个从指定字节数组从起始字节偏移量断在字节数组输出流。
void writeTo(OutputStream out) 用于将字节数组输出流的完整内容写入指定的输出流。
void reset() 用于将字节数组输出流的计数字段重置为零值。
void close() 用于关闭ByteArrayOutputStream。

5 Java ByteArrayOutputStream的例子

让我们看一下一个Java ByteArrayOutputStream类的简单示例,该类将公共数据写入2个文件:f1.txt和f2.txt。

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java ByteArrayOutputStream的例子
 */
import java.io.*;

public class Demo {

    public static void main(String args[])throws Exception{
        FileOutputStream fout1=new FileOutputStream("D:\\xnip\\f1.txt");
        FileOutputStream fout2=new FileOutputStream("D:\\xnip\\f2.txt");

        ByteArrayOutputStream bout=new ByteArrayOutputStream();
        bout.write(65);
        bout.writeTo(fout1);
        bout.writeTo(fout2);

        bout.flush();
        bout.close();//has no effect
        System.out.println("Success...");
    }
}

输出结果为:

Success...

f1.txt:

A

f2.txt:

A

下图描述了整个程序执行的过程: