前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA基础知识之ByteArrayOutputStream流

JAVA基础知识之ByteArrayOutputStream流

作者头像
用户7886150
修改2021-04-20 10:14:18
4590
修改2021-04-20 10:14:18
举报
文章被收录于专栏:bit哲学院

参考链接: Java ByteArrayOutputStream类

一、ByteArrayOutputStream流定义 

     API说明:此类实现一个字节输出流、其中数据被写入到字节数组中, 缓冲区在数据写入时会自动增长,关闭该流无效,关闭此流后调用方法不会有异常 

二、ByteArrayOutputStream流实例域 

/**

     * 存储数据的缓冲区

     */

    protected byte buf[];

    /**

     * 缓冲区中的有效字节数

     */

    protected int count; 

三、ByteArrayOutputStream流构造函数 

 /**

     * 创建新的字节数组输出流、默认缓冲区大小是32个字节

     */

    public ByteArrayOutputStream() {

        this(32);

    }

    /**

     * 创建新的字节数组输出流,以指定的大小

     */

    public ByteArrayOutputStream(int size) {

        if (size < 0) {

            throw new IllegalArgumentException("Negative initial size: "

                                               + size);

        }

        buf = new byte[size];

    } 

四、ByteArrayOutputStream流方法 

1)write(int b):写入指定的字节到此字节输出流中 

   /**

     * 写入指定的字节到此字节输出流中

     */

    public synchronized void write(int b) {

        ensureCapacity(count + 1);

        buf[count] = (byte) b;

        count += 1;

    } 

2)write(byte b[], int off, int len):从指定数组的下标off开始写入len个字节到该输出流中 

 /**

     *  从指定数组的下标off开始写入len个字节到该输出流中

     */

    public synchronized void write(byte b[], int off, int len) {

        if ((off < 0) || (off > b.length) || (len < 0) ||

            ((off + len) - b.length > 0)) {

            throw new IndexOutOfBoundsException();

        }

        ensureCapacity(count + len);

        System.arraycopy(b, off, buf, count, len);

        count += len;

    } 

3)writeTo(OutputStream out):将此字节输出流的内容写入到指定的输出流中 

    /**

     *  将此字节输出流的内容写入到指定的输出流中

     */

    public synchronized void writeTo(OutputStream out) throws IOException {

        out.write(buf, 0, count);

    } 

4)reset():重置此字节输出流,废弃此前存储的数据 

     /**

     * 重置此字节输出流,废弃此前存储的数据

     */

    public synchronized void reset() {

        count = 0;

    } 

5)对输出流的数据进行检索 

   /**

     * 将此输出流转成字节数组输出

     */

    public synchronized byte toByteArray()[] {

        return Arrays.copyOf(buf, count);

    }

    /**

     * 将此输出流转成字符串输出

     */

    public synchronized String toString() {

        return new String(buf, 0, count);

    }

    /**

     *  通过指定编码格式将缓冲区内容转换为字符串

     */

    public synchronized String toString(String charsetName)

        throws UnsupportedEncodingException

    {

        return new String(buf, 0, count, charsetName);

    }

6) close():关闭流无效,关闭后调用其他方法不会有异常 

    /**

     * 关闭流无效,关闭后调用其他方法不会有异常

     */

    public void close() throws IOException {

    } 

五、ByteArrayOutputStream流的作用 

    暂时未使用过、所以不清楚项目中什么地方使用,因此暂时了解其功能即可

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档