黑马训练营---------IO 字节数组流对象

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------

用于操作字节数组的流对象。
ByteArrayInputStream :在构造的时候,需要接收数据源,。而且数据源是一个字节数组。
ByteArrayOutputStream: 在构造的时候,不用定义数据目的,因为该对象中已经内部封装了可变长度的字节数组。
这就是数据目的地。
因为这两个流对象都操作的数组,并没有使用系统资源。
所以,不用进行close关闭。

在流操作规律讲解时:

源设备,
 键盘 System.in,硬盘 FileStream,内存 ArrayStream。
目的设备:
 控制台 System.out,硬盘FileStream,内存 ArrayStream。
用流的读写思想来操作数据。
*构造函数:
*ByteArrayOutputStream()
          创建一个新的 byte 数组输出流。
ByteArrayOutputStream(int size)
          创建一个新的 byte 数组输出流,它具有指定大小的缓冲区容量(以字节为单位)。


ByteArrayInputStream(byte[] buf)
          创建一个 ByteArrayInputStream,使用 buf 作为其缓冲区数组。
ByteArrayInputStream(byte[] buf, int offset, int length)
          创建 ByteArrayInputStream,使用 buf 作为其缓冲区数组。

*/

public class ByteArrayStream {
 public static void main(String[] args){
  methed_1();
 }
 public static void methed_1(){

  byte[] ch=new String("dfghjh").getBytes();//定义一个字节数组,(toCharArray字符串转字节数组)
  ByteArrayInputStream bis=new ByteArrayInputStream(ch);
  byte[] b1=new byte[1024];
  ByteArrayOutputStream  bos=new ByteArrayOutputStream();//定义一个字节数组输出流,并不一定需要定义源目的
 
  int len_1=0;
  byte[] b2=new byte[1024];
  int len_2=0;
  while((len_1=bis.read(b1,0,ch.length))!=-1){
   bos.write(b1,0,b1.length);//把b1当作数据源,开始输出。。
  }
  System.out.println(new String(b1));

  System.out.println(bos.toString()+b2.length);
  
}
}

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值