掌握Java中的FileReader类:逐步教程

掌握Java中的FileReader类 Java是一种面向对象的程序设计语言,由Sun Microsystems公司于1995年首次公开发布。Java与C++语言相比,更强调面向对象的概念,更容易学习和使用,且不易出错,被广泛应用于互联网应用、客户端软件、移动应用等领域。Java的标准库中包含了许多常用的类,其中FileReader就是一个常用的类。FileReader类是Java.io包中的一个类,用来读取文件中的字符数据,它继承了类。使用FileReader类可以很方便地读取文本文件中的数据,是一种字符输入流。FileReader。 阅读详情

今天又来给大家普及Java之IO流啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~


本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶,欢迎大家关注&&收藏!持续更新中,up!up!up!!

js

复制代码

环境说明:Windows10 + IntelliJIDEA2021.3.2 + Jdk1.8

前言

  Java是一种面向对象的程序设计语言,由Sun Microsystems公司于1995年首次公开发布。Java与C++语言相比,更强调面向对象的概念,更容易学习和使用,且不易出错,被广泛应用于互联网应用、客户端软件、移动应用等领域。Java的标准库中包含了许多常用的类,其中FileReader就是一个常用的类。

摘要

  FileReader类是Java.io包中的一个类,用来读取文件中的字符数据,它继承了InputStreamReader类。使用FileReader类可以很方便地读取文本文件中的数据,是一种字符输入流。

FileReader类

概述

  FileReader类是Java.io包中的一个类,用来读取文件中的字符数据,它继承了InputStreamReader类,InputStreamReader类又继承自Reader类。所以,FileReader类的完整继承关系图如下所示:

java

复制代码

java.lang.Object | java.io.Reader | java.io.InputStreamReader | java.io.FileReader

  在这个继承关系图中,FileReader类位于最底层,它是Reader类的子类,而Reader类又是InputStreamReader类的子类,最终都继承自Object类。这表示FileReader类拥有Reader类和InputStreamReader类中定义的方法,并且间接继承了Object类中的方法。

  对于FileReader类,它的构造方法有两种:

java

复制代码

publicFileReader(String fileName)throws FileNotFoundException; publicFileReader(File file)throws FileNotFoundException

  第一种方法通过接受一个文件名字符串来创建一个FileReader对象。第二种方法通过接受一个File对象来创建一个FileReader对象。

  FileReader类有一个read()方法来读取字符,read()方法会返回读取到的字符编码,如果已经到达文件末尾,返回-1。同时FileReader还有个read(char[] cbuf)方法,这个方法会读取长度为cbuf.length的字符到cbuf中,并返回读取的字符个数。

源代码解析

  FileReader类是Java中用于读取字符流的类,它继承自Reader类。FileReader类的源代码如下:

java

复制代码

publicclassFileReaderextendsInputStreamReader {publicFileReader(String fileName)throws FileNotFoundException {super(newFileInputStream(fileName)); }publicFileReader(File file)throws FileNotFoundException {super(newFileInputStream(file)); }publicFileReader(FileDescriptor fd) {super(newFileInputStream(fd)); }}

从源代码可以看出,FileReader类有三个构造方法:

  1. FileReader(String fileName):根据文件名创建FileReader对象。
  2. FileReader(File file):根据File对象创建FileReader对象。
  3. FileReader(FileDescriptor fd):根据文件描述符创建FileReader对象。

  这三个构造方法都使用了FileInputStream类来创建输入流,因为FileReader类是用来读取字符流的,而FileInputStream是用来读取字节流的,所以需要使用InputStreamReader类将FileInputStream转换为字符流,InputStreamReader是Reader类的子类,因此FileReader类也是Reader类的子类。

  除了构造方法外,FileReader类还继承了Reader类的所有方法,例如read()、skip()、close()等。因此,我们可以使用FileReader类的实例对象来读取文件中的字符串。

部分源码截图如下:

应用场景案例

  FileReader类通常用于读取文本文件的内容。例如,在Java应用程序中可以用FileReader类来读取配置文件、日志文件等文本文件的内容,然后做进一步的处理,例如解析XML文件、处理JSON格式的数据等。

优缺点分析

优点:

  • FileReader类是Java标准库中提供的类,使用方便。
  • FileReader类可以很方便地读取文本文件中的数据。

缺点:

  • FileReader类只能用于读取文本文件,不能用于读取二进制文件。
  • FileReader类在读取文件时,文件必须存在,否则会抛出FileNotFoundException异常。

类代码方法介绍

构造方法

java

复制代码

publicFileReader(String fileName)throws FileNotFoundException;publicFileReader(File file)throws FileNotFoundException

  这两个构造方法分别通过接受一个文件名字符串或一个File对象来创建一个FileReader对象。

常用方法

java

复制代码

publicintread()throws IOException;publicintread(char[] cbuf)throws IOException;publicvoidclose()throws IOException;

  FileReader类中最常用的方法是·read()·,它用来读取字符,返回读取到的字符编码,如果已经到达文件末尾,返回-1。例如:

java

复制代码

FileReaderreader=newFileReader("test.txt");intc= reader.read();

  read(char[] cbuf)方法会读取长度为cbuf.length的字符到cbuf中,并返回读取的字符个数。

  close()方法用来关闭打开的文件。因为操作系统通常限制了同时打开的文件数量,所以在完成对文件的操作后应该及时关闭文件。

测试用例

为了演示FileReader类的使用方法,这里提供一个简单的测试用例,供大家参考学习。

示例代码

java

复制代码

package
com.example.javase.io.reader.inputStreamReader.fileReader;import java.io.FileReader;import java.io.IOException;/** * @author bug菌 * @version 1.0 * @date 2023/10/19 10:37 */publicclassFileReaderTest {publicstaticvoidmain(String[] args) {try (FileReaderreader=newFileReader("./template/fileTest.txt")) {char[] buffer = newchar[1024];int length;while ((length = reader.read(buffer)) != -1) { System.out.println(newString(buffer, 0, length)); } } catch (IOException e) { e.printStackTrace(); } }}

  这个例子中,使用try-with-resources语句块来自动关闭文件,也可以使用try-catch-finally语句块来手动关闭文件。

示例结果

如下是通过上述测试用例所运行的示例结果,仅供参考:

代码解析

  如上测试用例展示了如何使用FileReader类进行文件读取内容操作,如下给大家具体讲解该测试用例实现的完整步骤,同学们请看:

  首先,在try块中声明了一个FileReader对象,并传入了要读取的文件的路径。try块的结尾处,Java会自动关闭reader对象。

  接下来,定义了一个字符数组buffer,大小为1024,用于存储读取到的数据。然后,使用while循环,从reader中读取内容,并将读取到的数据存入buffer中。如果读取的长度为-1,表示已经读取到文件末尾,循环结束。

  最后,使用System.out.println语句将读取到的字符数组转换成字符串,并输出到控制台。如果读取到的内容包含中文或其他非ASCII字符,一定要使用带有字符编码参数的String构造函数,否则会出现乱码。

小结

  本文介绍了Java.io包中的FileReader类,包括FileReader类的构造方法、常用方法、应用场景、优缺点等内容,并提供了一个简单的测试用例。学习本文后,读者可以掌握如何使用FileReader类读取文本文件中的内容。

附录源码

  如上涉及所有源码均已上传同步在「Gitee」,提供给同学们一对一参考学习,辅助你更迅速的掌握。

总结

  FileReader类是Java标准库中的一个类,用于读取文本文件中的数据。使用FileReader类可以很方便地读取文本文件中的内容,是一种字符输入流。本文介绍了FileReader类的构造方法、常用方法、应用场景、优缺点等内容,并提供了一个简单的测试用例,希望能帮助读者更好地理解和使用FileReader类。

Java中的FileReader类进阶 Java是一种面向对象的程序设计语言,由Sun Microsystems公司于1995年首次公开发布。Java与C++语言相比,更强调面向对象的概念,更容易学习和使用,且不易出错,被广泛应用于互联网应用、客户端软件、移动应用等领域。Java的标准库中包含了许多常用的类,其中FileReader就是一个常用的类。FileReader类是Java.io包中的一个类,用来读取文件中的字符数据,它继承了类。使用FileReader类可以很方便地读取文本文件中的数据,是一种字符输入流。FileReader。 阅读详情

相关推荐

视觉SLAM与激光SLAM简单对比分析

本文旨在梳理目前较为前沿的SLAM技术,包括激光和视觉,主要从精度和实时性两个方面对算法进系评价。对于激光SLAM了解不深,后期需要补充相关算法的核心思想与算法框架。有问题请大佬们随时留言,我再改正。

超爱吃小蛋糕的66的博客 3854

FileReader

FileReader

m0_46641774的博客 1万+

腾讯Octop:Windows本地AI助手一键安装实战指南

本地AI助手是面向普通用户在个人设备上运行大语言模型的轻量级解决方案,其核心原理在于封装模型加载、推理调度与Web交互等底层复杂性,通过预编译运行时、自适应硬件加速和图形化配置降低使用门槛。技术价值体现在免环境依赖、离线可用、开箱即用,显著提升非开发者在专利撰写、文案生成、技术文档处理等办公场景中的生产力。本文聚焦Windows平台下的腾讯Octop工具,结合qwen2-7b-instruct、phi-3-mini等主流GGUF量化模型,详解安装适配、API集成与专利辅助工作流,覆盖从零部署到工程落地的完整

weixin_29055137的博客 307

Java FileReader

Java FileReader (Java FileReader) Java FileReader class is part of java.io package. Java FileReader类是java.io软件包的一部分。 The FileReader is a subclass of InputStreamReader class. FileReader是InputStreamRea...

从零开始的教程世界 6231

GitLab社区版vs企业版:本地部署性能对比与选型建议(含实测数据)

本文深入对比GitLab社区版(CE)与企业版(EE)在本地部署中的性能差异与功能特性,提供实测数据与选型建议。测试显示EE版在并发克隆、CI流水线启动等场景性能提升显著,尤其适合需要高级安全合规与CI/CD功能的团队。文章还包含硬件配置指南与成本效益分析,帮助技术决策者做出明智选择。

weixin_28828243的博客 295

别再用UE5默认材质:用Substance Painter一招提升写实感

今天,我就把这套从模型准备到引擎最终呈现的全流程技巧毫无保留地分享出来,这套方法不仅能让你的作品细节炸裂,更能让你理解次世代PBR(Physically Based Rendering)材质的底层逻辑。

海外旅居设计师,15年设计经验。 1325

Java基础学习——Java流(二)FileReader和FileWriter、FileInputStream和FileOutputStream

一、

skx1102195517的博客 2892

中文文本纠错实战:pycorrector与kenlm的安装与高效使用指南

本文提供了一份详细的中文文本纠错实战指南,重点介绍了pycorrector与kenlm的安装与高效使用方法。内容涵盖从编译环境准备、依赖安装到核心参数调优、批量处理及领域自适应等全流程,旨在帮助开发者快速部署并优化纠错系统,提升中文文本处理的质量与效率。

weixin_29055699的博客 411

Java IO 中的 FileReader 和 FileWriter

FileReader和FileWriter是Java IO流中用于处理字符文件读取和写入的两个类,它们分别继承自Reader和Writer,是处理文本文件的便利类。

yuiezt的专栏 1489

10步掌握!跨国企业在MySQL中实现数据主权的秘诀 vs. 传统方法,你选对了吗?

首先,我们要明确“数据主权”这一概念。简单来说,它指的是国家对其境内产生的所有类型的数据拥有绝对控制权。这意味着即使数据被存储在国外服务器上,只要该数据来源于某国,那么该国政府就有权对其进行监管。对于跨国公司来说,这就要求它们必须严格遵循不同国家关于数据保护的规定,如欧盟的GDPR、美国的《云法案》以及中国的《网络安全法》等。

java专栏 714

halcon3d点云补全方法

属于halcon实例中的内容,后面还接了一部分的匹配

Tianwen_running的博客 1231

java中的 FileWriter类 和 FileReader类的一些基本用法

FileWriter学习 FileWriter 文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。 FileOutputStream 用于写入诸如图像数据之类...

小强博客 7052

小米汽车车载多摄像头视频链路深度解析 | MAX96792/MAX96724/MAX96781 实战分享

通过合理的输入输出规划 + 虚拟通道管理 + 加串行策略,可以在成本和性能之间取得最佳平衡,这就是多摄像头系统设计的核心精髓。

weixin_43199439的博客 1547

java filereader类_java中的 FileWriter类 和 FileReader类的一些基本用法

1,FileWriter类(字符输出流类)构造方法:FileWriter fw = new FileWriter(String fileName);//创建字符输出流类对象和已存在的文件相关联。文件不存在的话,并创建。如:FileWriter fw = new FileWriter("C:\\demo.txt");FileWriter fw = new FileWriter(String file...

weixin_31642161的博客 648

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java FileReader类

文章目录Java FileReader类创建FileReader对象成功后,代码参抄链接 Java FileReader类 FileReader从InputStreamReader类继承。 该类按字符读取流中数据。 可以通过以下几种构造方法创建需要的对象。 在给定从中读取数据的 File 的情况下创建一个新 FileReader。 FileReader(FileDescrip...

fgh123的博客 592

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JAVA中的IO流-FileReader类

FileReader类: 用于读取字符流的一个类 构造方法: FileReader(File file) 创建一个新的 FileReader ,给出 File读取。 FileReader(FileDescriptor fd) 创建一个新的 FileReader ,给定 FileDescriptor读取。 FileReader(String fileName) 创建一个新的 Fil...

weixin_42947972的博客 571

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java new Filereader_Java FileReader类

首页>基础教程>IO流>Reader类Java FileReader类FileReader用于以字符为单位读取文本文件,能够以字符流的形式读取文件内容。除了读取的单位不同之外,FileReader与FileInputStream并无太大差异,也就是说,FileReader用于读取文本。根据不同的编码方案,一个字符可能会相当于一个或者多个字节。构造函数FileReade...

weixin_42500720的博客 945

FileReader类

java.io.FileReader类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。 字符编码:字节与字符的对应规则。Windows系统的中文编码默认是GBK编码表。 字节缓冲区:一个字节数组,用来临时存储字节数据。 构造方法 当你创建一个流对象时,必须传入一个文件路径。类似于FileInputStream FileReader(File file): 创建一...

Luis 633

java new Filereader_Java FileReader类 - Java 教程 - 自强学堂

Java FileReader类FileReader类从InputStreamReader类继承而来。该类按字符读取流中数据。可以通过以下几种构造方法创建需要的对象。在给定从中读取数据的 File 的情况下创建一个新 FileReader。FileReader(File file)在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader。FileReader(F...

weixin_36139471的博客 1023

JAVA中常用IO流类:FileReader和FileWriter

FileReader 用于以字符为单位读取文本文件   构造方法摘要 FileReader(File file)            在给定从中读取数据的 File 的情况下创建一个新FileReader。 FileReader(Fil

caixiexin的专栏 1万+

java中的filereader_JAVA中的IO流-FileReader类

FileReader类: 用于读取字符流的一个类构造方法:FileReader(File file)创建一个新的 FileReader ,给出 File读取。FileReader(FileDescriptor fd)创建一个新的 FileReader ,给定 FileDescriptor读取。FileReader(String fileName)创建一个新的 FileReader ,给定要读取的文...

weixin_39796149的博客 195

无涯教程-Java - FileReader Class函数

无涯教程网提供此类从InputStreamReader类继承, FileReader用于读取字符流。此类具有多个构造函数来创建所需的对象。以下是FileReader类提供的构造函数的列表。给定要读取的FileDescriptor,此构造函数创建一个新的FileReader。给定要读取的文件的名称,此构造函数创建一个新的FileReader。给定要读取的文件,此构造函数创建一个新的FileReader。返回一个int,它表示读取的字符。//创建一个 FileReader 对象。//一个一个地打印字符。

无涯教程 1044

java filereader 用法_第2章 FileReader类使用

1.1 FileReader读数据一次读取一个字符1.1.1 案例代码五:package com.itheima_02;import java.io.FileReader;import java.io.IOException;/** 需求:从文件中读数据并显示到控制台* 读数据--输入流--FileReader** FileReader:* FileReader(String fileName):...

weixin_29355377的博客 1231
上一篇: 全网最新上线!【来自于阿里】号称Java八股文天花板,首次开源!
下一篇: 从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!
程序员职业指南
博客等级 码龄4年 2136粉丝 960原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值