JAVA IO流read方法基础使用

一、FileInputStream

首先使用FileInputStream创建一个读入流,读取的文件内容为abc三个字母

class readTest{
public static void main(String[] args){

//手敲没有处理异常try catch语句

FileInputStream fis = new FileInputStream("f1.txt");
//read方法,每次只读一个字节,一个英文字母就是一个字节,所以每次只读到一个字母。
//read方法的返回值是int类型,就是实际的字节内容
int readdata = fis.read();
System.out.println(readdata);//本次读到的是97
System.out.println((char)readdata);//将97转换为字符a
System.out.println(String.valueOf((char)readdata));//得到字符串a


readdata = fis.read();
System.out.println(readdata);//本次读到的是98
System.out.println((char)readdata);//将98转换为字符b
System.out.println(String.valueOf((char)readdata));//得到字符串b


readdata = fis.read();
System.out.println(readdata);//本次读到的是99
System.out.println((char)readdata);//将99转换为字符c
System.out.println(String.valueOf((char)readdata));//得到字符串c

//读取后关闭流
fis.close();




}

}

二、字节数组读取

//逐个读取字符的效率较低,所以改进为每次读2个字节的内容

FileInputStream fis = new FileInputStream("f1.txt");
byte[] bytes = new byte[2];//new一个byte数组,长度为2,每次可以往里面最多读2个字节
int readcount = fis.read(bytes);//传入数组后,read的返回值为读到的字节数量,就是读到了几个
System.out.println(readcount);//输出结果为2,读到了2个字节的内容
System.out.println(new String(bytes));//将读到字节的数组转换成字符串:ab

readcount = fis.read(bytes);//继续用2个长度的数组进行读取
System.out.println(readcount);//输出结果为1,读到了1个字节的内容。
System.out.println(new String(bytes));//将读到字节的数组转换成字符串:cb。
//虽然读到了1个字节,但新读到的字节只把数组中的历史的第一个字节给覆盖了,第二个字节还存在,所以数组转换为字符串后是cb

readcount = fis.read(bytes);//继续用2个长度的数组进行读取
System.out.println(readcount);//输出结果为-1,因为没有读取到内容。

fis.close();

三、循环读取

//我们需要的是将读到的数字字节转换为字符串,上述方法显然没有做到,进行改进。

FileInputStream fis = new FileInputStream("fis.txt");

int readcount = null;
byte[] bytes = new byte[2];

//改进1,使用读取不到内容返回-1的特征进行循环读取
while(readcount = fis.read(bytes)) != -1{

System.out.println(readcount);
System.out.println(new String(bytes, 0, readcount));//从0开始,将数组转换为字符串,转换个数为readcount。

}
fis.close();
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值