55 lines
2.3 KiB
Java
55 lines
2.3 KiB
Java
package com.inmind.io_in02;
|
|
|
|
import java.io.FileInputStream;
|
|
import java.io.IOException;
|
|
|
|
/*
|
|
使用字节输入流一次读取一个字节数组
|
|
int read(byte[] b) 从字节输入流中将字节数据读取到参数b数组中,返回的值读取的字节个数
|
|
|
|
需求:使用字节输入流将source1.txt中的数据以一次读取一个字节数组的形式读取打印
|
|
*/
|
|
public class Demo07 {
|
|
public static void main(String[] args) throws IOException {
|
|
//1.创建字节输入流对象
|
|
FileInputStream fis = new FileInputStream("source1.txt");
|
|
/*
|
|
2.调用读方法(一次读取一个字节数组的数据)
|
|
int read(byte[] b) 从字节输入流中将字节数据读取到参数b数组中,返回的值读取的字节个数
|
|
*/
|
|
/*byte[] bytes = new byte[2];//用来保存,字节输入流读取到的字节数据
|
|
int len = fis.read(bytes);//用来接收读取到的字节数据的个数
|
|
System.out.println(len);
|
|
System.out.println(new String(bytes,0,len));
|
|
|
|
len = fis.read(bytes);
|
|
System.out.println(len);
|
|
System.out.println(new String(bytes,0,len));
|
|
|
|
len = fis.read(bytes);
|
|
System.out.println(len);
|
|
System.out.println(new String(bytes,0,len));
|
|
|
|
len = fis.read(bytes);
|
|
System.out.println(len);
|
|
System.out.println(new String(bytes,0,len));*/
|
|
|
|
byte[] bytes = new byte[1024];//用来保存字节输入流读取到的字节数据
|
|
int len;//用来接收读取到的字节数据的个数,如果返回-1表示读取到末尾了
|
|
/*
|
|
((len = fis.read(arr))!= -1)执行流程:
|
|
1.is.read(arr) :从字节输入流中最多读取数组长度的字节数据保存在数组中,返回读取到的字节的数量
|
|
2.len = fis.read(arr):返回读取到的字节的数量保存到变量len中
|
|
3.(len = fis.read(arr))!= -1:判断是否读取到字节数据的数量,如果读取到,那么就获取多少个字节数据,如果没有-1则结束循环
|
|
*/
|
|
while ((len = fis.read(bytes)) != -1) {//(核心代码)
|
|
System.out.println(new String(bytes,0,len));
|
|
}
|
|
|
|
//3.释放资源
|
|
fis.close();
|
|
|
|
System.out.println("程序结束");
|
|
}
|
|
}
|