JAVA 内存操作流

当输入输出的位置设置在内存上,就要使用ByteArrayInputStream和ByteArrayOutputStream来完成输入和输出功能。

需要明白的是,ByteArrayInputStream和ByteArrayOutputStream各自有各自的缓冲区,并不是用的一个缓冲区。并且,它们都可以独立完成读入写出的操作,这点是与其他的IO所不同的。

ByteArrayInputStream包含一个内部缓冲区,该缓冲区包含从流中读取的字节。这个类的缓冲区是由流的创建者提供的byte数组。将数据写入缓冲区,使用的是其构造方法;将数据取出,使用的是read方法。

public ByteArrayInputStream(byte[]buf)

创建一个ByteArrayInputStream,使用buf作为其缓冲区数组。该缓冲区数组不是复制得到的。pos的初始值是0,count的初始值是buf的长度。

public int read()

从此输入流中读取下一个数据字节。返回一个 0 到 255 范围内的 int 字节值。如果因为到达流末尾而没有可用的字节,则返回值 -1。

ByteArrayOutputStream实现了一个输出流,其中的数据被写入一个byte数组。缓冲区可以自动增长。将数据写入内存时,可以使用write方法;将数据从内存取出,可以使用toString方法和toByteArray方法。

public void write(int b)

将指定的字节写入此 byte 数组输出流。(JDK帮助文档是这么写,和有些的不一样。)

public String toString()

使用平台默认的字符集,通过解码字节将缓冲区内容转换为字符串。新 String 的长度是字符集的函数,因此可能不等于缓冲区的大小。

 

    具体例子大家可以看那个大小写字符转换的程序,在很多网页上都可以找到,这里不再赘述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值