Java字节输入流的读方法(两种read方法)

本文介绍了Java IO编程中读取文件的步骤,包括创建流对象、读取数据和关闭流。通过示例代码展示了如何使用FileInputStream读取文件内容,分别用fis.read()逐个读取字节和fis.read(bytes)一次性读取多个字节到数组中。此外,还解释了read()方法返回int类型的原因,并提及了字符流的使用场景。
摘要由CSDN通过智能技术生成

在java的io编程中,读取文件是分为两个步骤的

1.将文件中的数据转换为流对象
2.读取流对象的数据

具体步骤

1.创建流对象
2.读取流对象内部的数据
3.关闭流对象

以下是具体代码,包含注释

	public static void main(String[] args) throws IOException {
		int index;
		byte[] bytes = new byte[100];//数组长度为100
		FileInputStream fis=new FileInputStream("D:\\\\java_io\\\\a.text");
		FileInputStream fis2=new FileInputStream("D:\\\\java_io\\\\a.text");
		int num;
		while((num=fis.read())!=-1) {//依次向下读取返回int数据类型
			System.out.print(" num:"+num);
		}
		System.out.println("");
		index=fis2.read(bytes);//从流中读取bytes数组(100)长度个字节的数据存储到bytes数组中
		System.out.println(" index:"+index);//index是流中数据的个数
		System.out.println(new String(bytes,0,index));

		
		for (byte b : bytes) {
			System.out.print(b+" ");
		}
	}

在这里插入图片描述

需要注意的几点如下

fis.read()方法是依次读取一个个字节数据,返回每个数据的整型,该方法的作用是每次读取流中的一个字节,如果需要读取流中的所有数据,需要使用循环读取。
fis.read(bytes)此方法是就实现了将流对象fis中的数据读取到字节数组bytes中,该行代码的作用是将fis流中的数据读取出来,并依次存储到数组data中,返回值为实际读取的有效数据的个数。

扩展为什么read()返回值是int类型

一个大佬写的很详细(https://blog.csdn.net/music0ant/article/details/60337974)

拓展字符流:

读取文本文件时:使用Reader类的子类FileReader进行实现,在编写代码时,只需要将上面示例代码中的byte数组替换成char数组即可。

注意:
读取二进制文件或自定义格式的文件时:使用FileInputStream进行读取,方便对于读取到的数据进行解析和操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值