字节数组输入流 ByteArrayInputStream

系统 1515 0

     ByteArrayInputSteam类从内存中的字节数组中读取数据,因此它的数据源是一个字节数组。这个类的构造方法包括: 
     ByteArrayInputStream(byte[] buf)--------参数buf指定字节数组类型的数据源。 
     ByteArrayInputStream(byte[] buf, int offset, int lenght)-----参数buf指定字节数组类型数据源,参数offset指定从数组中开始读取数据的起始下标位置,lenght指定从数组中读取的字节数。 
    ByteArrayInputStream类本身采用了适配器设计模式,它把字节数组类型转换为输入流类型,使得程序能够对字节数组进行读操作。 
     下面这个ByteArrayTester类演示了 ByteArrayInputStream的用法。 
Java代码   收藏代码
  1. package  xiaohang.com;  
  2.   
  3. import  java.io.ByteArrayInputStream;  
  4. import  java.io.IOException;  
  5.   
  6. public   class  ByteArrayTester {  
  7.      public   static   void  main(String[] args)  throws  IOException {  
  8.          byte [] buff =  new   byte [] {  2 15 67 , - 1 , - 9 9  };  
  9.         ByteArrayInputStream in =  new  ByteArrayInputStream(buff,  1 4 );  
  10.          int  data = in.read();  
  11.          while  (data != - 1 ) {  
  12.             System.out.println(data +  " " );  
  13.             data = in.read();  
  14.         }  
  15.         in.close(); // ByteArrayInputSystem 的close()方法实际上不执行任何操作   
  16.     }  
  17. }  


   以上字节数组输入流从字节数组buff的下标为1的元素开始读,一共读取4个元素。对于读到的每一个字节类型的元素,都会转换为int类型。 
    例如:对于字节类型的15,二进制形式为00001111,转换为int类型的二进制形式为 
00000000 00000000 00000000 00001111,因此字节类型的15 转换为int类型仍然是15;对于字节类型的-1,二进制形式为 11111111,转换为int类型的二进制形式为 
00000000 00000000 00000000 11111111 ,因此字节类型的-1 转换为int类型是255;对于字节类型的-9,二进制形式为 11110111, 转换为int类型的二进制形式为 00000000 00000000 00000000 11110111, 因此字节类型的-9转换为 int类型是 247。 

   以上字节数组输入流在读取了4个字节后,就达到了输入流的末尾,在执行read()方法,就会返回-1。以上程序的打印结果为: 

字节数组输入流 ByteArrayInputStream  

   需要指出的是,这里所说的把byte类型转换为int类型,与赋值运算中的类型转换是两回事。在赋值运算中,把byte类型赋给int类型,取值不变,例如:: 
Java代码   收藏代码
  1. byte  b1= 15 ,b2=- 1 ,b3=- 9   
  2. int  a1=b1,a2=b2,a3=b3;  //a1 a2 a3 的取值分别为15, -1和-9   

字节数组输入流 ByteArrayInputStream


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论