Java ByteArrayOutputStream

原文:https://www.studytonight.com/java-file-io/java-bytearrayoutputstream-class

在本教程中,我们将学习 Java 中的ByteArrayOutputStream 类。该类用于将公共数据写入多个文件。这个类流首先将数据转换成一个字节数组,当需要时,这个数组可以转换成许多流。

enlightened了解这个类一个有趣的事实是这个类的缓冲区会根据数据自动增长。

句法

这是ByteArrayOutputStream 类的类声明,也继承了OutputStream

public class ByteArrayOutputStream extends OutputStream

Java 字节数组输出流类构造器

这个类有两种不同的构造器,第一种具有 32 字节的初始容量,并根据需要增加,另一方面,对于第二种构造器,我们可以隐式传递缓冲区的大小。

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

Java 字节数组输出流类方法

下表给出了该类的各种方法。

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

Java 字节数组输出流示例

在下面的例子中,我们将使用 ByteArrayOutputStream类的writeTo() 方法将相同的数据写入多个文件。

首先,我们创建了一个FileOutputStream 类的对象。最后,使用 writeTo()方法,我们将给定的内容写入两个文件。从输出中,我们可以看到两个文件中存在相同的文本。

import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class StudyTonight 
{
    public static void main(String[] args) throws IOException 
    {  
        FileOutputStream fout1=new FileOutputStream("E:\\studytonight\\myfile1.txt");    
        FileOutputStream fout2=new FileOutputStream("E:\\studytonight\\myfile2.txt");    
        ByteArrayOutputStream bout=new ByteArrayOutputStream();    
        bout.write('A');    
        bout.writeTo(fout1);    
        bout.writeTo(fout2);    
        bout.flush();       
        System.out.println("Data written to the file...");    
    }    
}

写入文件的数据...

我的文件 1.txt

A

我的文件 2.txt

A

结论

在本教程中,我们学习了 Java 中的ByteArrayOutputStream 类。通过使用这个类,我们可以将公共数据写入多个文件。该类支持size(), toByteArray(), toString(), toString(String charsetName), write(int b), write(byte[] b, int off, int len)等多种方法。