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));
		}
    }
}

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

发布了87 篇原创文章 · 获赞 43 · 访问量 4004

猜你喜欢

转载自blog.csdn.net/weixin_42947972/article/details/103362790