JAVA IO - 字符输入流 FileReader

1.继承关系图

首先了解一下 FileReader 的继承关系图,熟悉他的位置:
FileReader 是 InputStreamReader 的一个子类。
InputStreamReader 是 Reader 的一个子类。

在这里插入图片描述

2.API 介绍

字符输入流,作用就是以字符的为单位读取文件内容到程序中
特别适合处理文本文件

  /**
    * 1.read() 方法
    *    作  用 : 按字符读取文件内容,每次读取一个字符
    *    参  数 : 无参数
    *    返回值 : 1.返回读取到的字符;2.如果读取完毕,返回-1
    */
    /**
     *  2.read(char[] c) 方法
     *     作  用 : 按字符读取文件内容,每次可以读取 char[] 长度个字符
     *     参  数 : 字符数组,每次读取的内容放到这个数组中暂存
     *     返回值 : 1.返回读取到的字符数组的实际长度;2.如果是-1,则读取完毕
     */

3.文件读取案例案例代码

3.1 读取的文件内容

文件路径 : D:\EDailyRoutine\java-io-test\reader01.txt
文件内容如下:

hello FileReader
你好 FileReader
==========
欢迎使用FileReader来读取此文件

3.2 read() 方法

package com.northcastle.reader_;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 * author : northcastle
 * createTime:2021/12/13
 * 使用 FileReader 读取文件内容
 */
public class ApplicationFileReader {
    public static void main(String[] args) {
 		//1.创建文件
        String filePath = "D:\\EDailyRoutine\\java-io-test\\reader01.txt";
        File file = new File(filePath);
        //2.声明字符输入流 FileReader
        FileReader fileReader = null;
        //3.创建读取的结果的接收值
        int readChar = 0;
        try {
            // 4.创建字符流,执行读取操作
            fileReader = new FileReader(file);
            readChar = fileReader.read();//读取首个字符
            while (readChar != -1){ // 循环读取
                System.out.print((char) readChar); // 输出这个字符即可
                readChar = fileReader.read(); // 继续读下一个字符
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (fileReader != null){
                try {
                    fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
   
}

运行结果:可以正常读取到文件中的内容

hello FileReader
你好 FileReader
==========
欢迎使用FileReader来读取此文件

3.3 read(char[]) 方法

package com.northcastle.reader_;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 * author : northcastle
 * createTime:2021/12/13
 * 使用 FileReader 读取文件内容
 */
public class ApplicationFileReader {
    public static void main(String[] args) {
        //1.创建文件
        String filePath = "D:\\EDailyRoutine\\java-io-test\\reader01.txt";
        File file = new File(filePath);
        //2.创建字符输入流 FileReader
        FileReader fileReader = null;
        //3.创建读取暂存数组
        char[] buff = new char[8];
        int len = 0;
        try {
            //4.执行读取操作
            fileReader = new FileReader(file);
            len = fileReader.read(buff); //首次读取
            while (len != -1){ // 根据读取的状态,循环读取
                System.out.print(new String(buff,0,len));
                len = fileReader.read(buff);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (fileReader != null){
                try {
                    fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

运行结果:正常读取文件中的内容

hello FileReader
你好 FileReader
==========
欢迎使用FileReader来读取此文件

4.完成

Congratulations!
You are one step closer to success!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值