Java复习之IO字节数组流

这篇博客主要是复习一下Java中的字节数组流。

字节数组流是将数据保存在内存的缓冲区中,而不是与文件打交道,
所以无论文件流是否关闭对其都没有影响

1.ByteArrayInputStream

public class ByteArrayInputStream
extends InputStream

ByteArrayInputStream 包含着一个内部缓冲区,该缓冲区包含着从流中读取的字节。内部计数器跟踪read方法要提供的下一个字节

关闭ByteArrayInputStream无效。此类中的方法在关闭此流之后仍可被调用而不会产生任何的IOException

2.ByteArrayOutputStream

public class ByteArrayOutputStream
extends OutputStream

此类实现了一个输出流,其中的数据被写入一个byte数组。缓冲区会随着数据的不断增长而自动增加。可使用toByteArray()和toString()
获取数据

关闭ByteArrayOutputStream无效。此类中的方法在关闭此流之后仍可被调用而不会产生任何的IOException

public class ByteArrayDemo {
    /**
     * 使用ByteArrayOutputStream写操作
     */
    public static void write()
    {

        //默认的缓冲区大小为32个字节,具有自动扩充的功能
        //创建一个字节输出流数据
        ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
        String info="水不在深,有龙则灵";
        try {
            //往缓冲区里面写数据
            byteArrayOutputStream.write(info.getBytes());
            byteArrayOutputStream.write(10);
            //将数据转换为一个数组
        //    byteArrayOutputStream.toByteArray();

        }catch (IOException ex)
        {
            ex.printStackTrace();
        }
        //根据一个字节数组构造一个字节数组输入流
        ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
        byte []bytes=new byte[512];
        int len=-1;
        StringBuilder stringBuilder=new StringBuilder();

        try {
            while((len=byteArrayInputStream.read(bytes))!=-1)
            {
                stringBuilder.append(new String(bytes,0,len));
            }
        }catch (IOException ex)
        {
            ex.printStackTrace();
        }
        System.out.println(stringBuilder);
    }
    public static void main(String args[])
    {
        write();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值