Java ByteArrayOutputStream类

定义

public ByteArrayOutputStream()
public ByteArrayOutputStream(int size)

参数

size:初始大小。

返回

创建一个新的字节数组输出流。默认的大小为32,如果要修改容量大小,传入size就好了。

方法

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

将指定的字节写入此字节数组输出流,此方法继承于OutputStream,可以参考OutputStream.write

//使用默认的字符集将缓冲区的内容转换为字符串。
public String toString()
//指定字符集将缓冲区的内容转换为字符串。
public String toString(String charsetName)
public String toString(int hibyte)

详细参考OutputStream.toString 指定字符集转换成字符串

OutputStream.toByteArray 转换成byte[]字节数组

//将此字节数组输出流的计数字段重置为零,以便丢弃该输出流中所有当前累积的输出。
public void reset()
//返回缓冲区的当前大小。
public int size()
//关闭输出流
public void close()

实例

public static void main(String[] args)
{
    ByteArrayOutputStream bos = null;
    FileInputStream fs = null;
    try
    {
        bos = new ByteArrayOutputStream();
        fs = new FileInputStream("c:\\51gjie.txt");
        int len;
        while((len = fs.read()) != -1)
        {
            // 把读取到的数据逐个写到ByteArrayOutputStream中
            bos.write(len);
        }
        byte[] array = bos.toByteArray();
        // 指定utf-8解码的字符集
        System.out.println(new String(array, "utf-8"));
        fs.close();
    }
    catch(IOException e)
    {}
    finally
    {
        fs.close();
    }
}

ByteArrayOutputStream在内存中创建了一个字节数组,所有发送到输出流的数据都会保存到该字节数组的缓冲区中。数据写入缓冲区以后,然后使用toByteArray()和toString()输出。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。