Day16_94_IO_读取文件字节流read()方法(三)

读取文件字节流read()方法(三)

  • int read(byte[] bytes) 返回值为int类型, 该int类型数据表示每一次读取到的有效字节数,也就是读取到了几个字节, 一个都没读取到返回-1

  • 将整个byte[]数组转换为字符串: String content=new String(bytes);

  • 将byte[]数组的一部分转换为字符串 new String (byte[],int offset , length) : String content1=new String(bytes,0,i3); // 转换bytes数组, 从下标0开始, 转换i3个长度。

  • 如果要读取的数据大于byte[]数组的长度,那么后面读取到的数据就会覆盖之前读取到的数据

  • 代码示例:

    
    
         import java.io.FileInputStream;
         import java.io.FileNotFoundException;
         import java.io.IOException;
    
         public class IOTest03 {
             public static void main(String[] args) {
    
                 //创建文件路径变量
                 String fileName="D:\\TestFile\\JavaTestFile\\IoTest.txt";
    
                 //创建文件字节输入流
                 FileInputStream fis=null;
                 try {
                     fis= new FileInputStream(fileName);
    
                     //准备一个byte[]数组
                     byte[] bytes=new byte[3];
    
                     //开始读取字节流数据
                     //通过 int read(byte[] bytes)读取数据  每次读取多个字节存储到byte数组中
                     //其中 int i 表示读取到了几个字节,一个字节都没有读取到返回-1
                     int i1=fis.read(bytes);  //ABC
                     int i2=fis.read(bytes);  //DEF
                     int i3=fis.read(bytes);  //GEF
                     int i4=fis.read(bytes);  //GEF
                     int i5=fis.read(bytes);  //GEF
                     int i6=fis.read(bytes);  //GEF
                     int i7=fis.read(bytes);  //GEF
    
                     //将byte[]数组转换为字符串
                     String content=new String(bytes);
    
                     //将byte[]数组的一部分转换为字符串  new String(byte[],int offset , length)
                     String content1=new String(bytes,0,i3);  //从下标0开始,转换i3长度
    
    
                     //输出获得i值
                     System.out.println(i1);  //3
                     System.out.println(i2);  //3
                     System.out.println(i3);  //-1
                     System.out.println(i4);  //-1
                     System.out.println(i5);  //-1
    
    
                     //输出byte[]数组所转化成的字符串
                     System.out.println(content);   // GEF
                     System.out.println(content1);  // G
    
                   } catch (FileNotFoundException e) {
                     e.printStackTrace();
                 } catch (IOException e) {
                     e.printStackTrace();
                 } finally {
                     if(fis!=null){
                         try {
                             fis.close();
                         } catch (IOException e) {
                             e.printStackTrace();
                         }
                     }
                 }
    
             }
         }
    
posted @ 2021-04-11 15:50  失昼  阅读(157)  评论(0)    收藏  举报