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(); } } } } }