Java ByteArrayOutputStream
类
原文:https://www.studytonight.com/java-file-io/java-bytearrayoutputstream-class
在本教程中,我们将学习 Java 中的ByteArrayOutputStream
类。该类用于将公共数据写入多个文件。这个类流首先将数据转换成一个字节数组,当需要时,这个数组可以转换成许多流。
了解这个类一个有趣的事实是这个类的缓冲区会根据数据自动增长。
句法
这是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)
等多种方法。