Java字节流输入流FileInputStream的简单使用

本文详细介绍了Java字节流输入流FileInputStream的使用,通过实例解析read()方法的重载,帮助理解JavaSE中文件读取的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官网API:

https://docs.oracle.com/javase/8/docs/api/java/io/FileInputStream.html

	public static void main(String[] args) throws IOException {
		getConstructor();
		//getLoanShift();
		//getLoanShiftThree();
	}
	/**
	 * read(byte[],int off,int len),和read(byte[] b)差不多
	 */
	private static void getLoanShiftThree() throws IOException {
		FileInputStream fis = new FileInputStream(new File("D:\\a.txt"));
		byte[] b = new byte[2];
		int len = 0;
		while((len = fis.read(b, 0, b.length)) != -1){
			System.out.print(new String( b, 0, len));
		}
		fis.close();
	}

	/**
	 * read(byte[] b)  返回读取到的字节数
	 * 如果byte数组字节数为2,文件内容为abcde,2个字节依次读取三次那么读取结果就abcded
	 * 		第一次:byte{a,b},第二次:byte{c,d},第三次:byte{e,d},覆盖式的写入,最后一个没有了所以d没有被覆盖写入遗留的,byte数组读取到的字节数为2,2,1
	 * 		使用String的构造方法来完成:String(要读取的数组,开始位置,结束位置);这样读取的就是2,2,1,字符是ab,cd,e
	 */
	private static void getLoanShift() throws IOException {
		FileInputStream fis = new FileInputStream(new File("D:\\a.txt"));
		byte[] b = new byte[2];//一般写入字节数为1024或者倍数,建议别太大,太消耗内存
		int len = 0;
		while ((len = fis.read(b)) != -1) {
			System.out.print(new String(b, 0, len));
		}
		fis.close();
	}

	/**
	 * 构造参数:File,String read()
	 */
	private static void getConstructor() throws IOException {
		FileInputStream fis = new FileInputStream("D:\\a.txt");
		int data = 0; // 接受数据,如果定义fis.read()成为一个变量使用变量来循环则是死循环,所以必须循环内读取,但是数据拿不到,所以每次执行使用变量接受读取到的值,然后判断
		while ((data = fis.read()) != -1) { // 返回下一个数据字节int,或者-1如果到达文件末尾。
			System.out.println(data); // 可以强转为char即可显示ASCLL码表的转码
		}
		fis.close();
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值