ByteArrayOutputStream类流在内存中创建一个缓冲区,所有发送到该流的数据都存储在该缓冲区中。
以下是ByteArrayOutputStream类将提供的构造函数的列表。
Sr.No. | Constructor & Remark |
---|---|
1 |
ByteArrayOutputStream() 此构造函数创建一个具有32字节缓冲区的ByteArrayOutputStream。 |
2 |
ByteArrayOutputStream(int a) 此构造函数创建一个具有给定大小的缓冲区的ByteArrayOutputStream。 |
一旦有了ByteArrayOutputStream对象,就会有一系列的辅助方法,可用于写入流或对该流执行其他操作。
Sr.No. | Method & Remark |
---|---|
1 |
public void reset() 此方法将字节数组输出流的有效字节数重置为零,因此流中所有累积的输出将被丢弃。 |
2 |
public byte[] toByteArray() 此方法创建一个新分配的Byte数组。 |
3 |
public String toString() 将缓冲区内容转换为字符串。 |
4 |
public void write(int w) 将指定的数组写入输出流。 |
5 |
public void write(byte []b, int of, int len) 将从offset off开始的len个字节写到流中。 |
6 |
public void writeTo(OutputStream outSt) 将此流的全部内容写入指定的流参数。 |
以下是演示ByteArrayOutputStream和ByteArrayInputStream的示例。
import java.io.*; public class ByteStreamTest { public static void main(String args[])throws IOException { ByteArrayOutputStream bOutput=new ByteArrayOutputStream(12); while( bOutput.size()!= 10 ) { // Gets the inputs from the user bOutput.write("hello".getBytes()); } byte b []=bOutput.toByteArray(); System.out.println("Print the content"); for(int x=0; x < b.length; x++) { // printing the characters System.out.print((char)b[x] + " "); } System.out.println(" "); int c; ByteArrayInputStream bInput=new ByteArrayInputStream(b); System.out.println("Converting characters to Upper case " ); for(int y=0 ; y < 1; y++ ) { while(( c=bInput.read())!= -1) { System.out.println(Character.toUpperCase((char)c)); } bInput.reset(); } } }
运行上面代码输出
Print the content h e l l o h e l l o Converting characters to Upper case H E L L O H E L L O
参考链接
https://www.learnfk.com/java/java-bytearrayoutputstream.html
标签:Java,int,void,无涯,System,ByteArrayOutputStream,public,out From: https://blog.51cto.com/u_14033984/8869001