import java.io.FileInputStream;
import java.io.IOException;
import java.lang.reflect.Field;
/*
一次读取一个字节数组:int read(byte[] b)
*/
public class Test {
public static void main(String[] args) throws IOException {
//创建字节输入流对象
FileInputStream fis=new FileInputStream("fis.txt");
//读取数据
// //定义一个字节数组
// byte[] bys=new byte[5];
// int len=fis.read(bys);
// System.out.println(len);
// //System.out.println(new String(bys));//把一个字节数组转换为字符串
// System.out.print(new String(bys,0,len));
// //改进版,把每一个字节数组转换为字符串,从0开始把长度为字节数组长的转换为字符串,这是为了避免如果5大于要读的字节产生的读到别的东西,你可以将5改成115体验一下,并且ln也不能带,这样就是你人为的加了个换行。
//
// //第二次读取
// len=fis.read(bys);
// System.out.println(len);
// System.out.print(new String(bys,0,len));//每一次读都应该这样写,这样即使是第一次就超出去也没事。
//代码重复了,用循环改进
//根据测试和查API,循环终止的条件的读到-1
// byte[] bys=new byte[5];
// int len=0;//等价于:len=fis.read(bys);
// while ((len=fis.read(bys))!=-1){
// System.out.print(new String(bys,0,len));
// }
//最终版
//数组的长度一般是1024或者1024的复数倍
byte[] bys=new byte[1024];
int len=0;//等价于:len=fis.read(bys);
while ((len=fis.read(bys))!=-1){
System.out.print(new String(bys,0,len));//0和len一定要写
}
fis.close();
}
}
javase学习记录之------FileInoutStream读取数据一次一个字节数组
最新推荐文章于 2024-07-13 15:29:04 发布