JAVA中的IO流-FileReader类

FileReader类: 用于读取字符流的一个类

构造方法:

FileReader(File file) 
创建一个新的 FileReader ,给出 File读取。  

FileReader(FileDescriptor fd) 
创建一个新的 FileReader ,给定 FileDescriptor读取。  

FileReader(String fileName) 
创建一个新的 FileReader ,给定要读取的文件的名称。  

方法:

	.read()
	读取一个字符

	.read(char[] cbuf)
	读取一个字符串
	.......
	很多重载的方法
	
	.close()
	关闭流
	
	.....
	还有可以看API

例子:
这里把异常抛出,不进行捕捉了
demo.txt 文本文件中放着abcde

import java.io.FileReader;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("demo.txt");

        int ch = fr.read(); //读取一个
        System.out.println(ch); 输出
    }
}

运行结果: 97


如果要让它输出原本的a,则需要进行强制类型转换

 System.out.println((char)ch); 

运行结果: a


如果我们想要它全部输出的话,可以用循环

import java.io.FileReader;
        import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("demo.txt");

        int ch= 0;
        while((ch = fr.read()) != -1) {
            System.out.print((char)ch); //输出
        }
    }
}

运行结果:
在这里插入图片描述


利用数组进行存储再进行读取
例子:

import java.io.FileReader;
        import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("demo.txt");
		
		char[] ch = new char[3];
		
		int len = 0;
		len = fr.read(ch);
		System.out.println(len+":"+new String(ch));
    }
}

运行结果:
在这里插入图片描述


如果我们多次取值呢?

import java.io.FileReader;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("demo.txt");
		
		char[] ch = new char[3];
		
		int len = 0;
		len = fr.read(ch);
		System.out.println(len+":"+new String(ch));
		len = fr.read(ch);
		System.out.println(len+":"+new String(ch));
		len = fr.read(ch);
		System.out.println(len+":"+new String(ch));
    }
}

运行结果:
在这里插入图片描述
为什么会这样子呢?
我们第一次的时候数组是空的
于是把abc放进去之后
len = 3
在这里插入图片描述


后面继续读取 因为后面已经没有空间了,所以会重头开始
于是len = 2
在这里插入图片描述


因为第三次读取因为已经到底了
len = -1 告知错误
所以还是输出原来的
在这里插入图片描述


所以我们可以重新写一个输出
例子:

import java.io.FileReader;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("demo.txt");
		
		char[] ch = new char[3];
		
		int len = 0;
		while((len = fr.read(ch)) != -1) {
			System.out.println(len+":"+new String(ch,0,len));
		}
    }
}

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值