filereaderror_InputStreamReader

filereaderror_InputStreamReader今天梳理IO笔记时发现一个问题–FileReader是鸡肋吗,它有用吗???在使用字符流读取文本文件时(且不使用包装流时),有两种类提供读取文件方法,分别是InputStreamReader和FileReader,后者为前者子类。引言–当文本文件编码与编译工具默认编码不同时,FileReader类的方法读取文件会出现乱码的情况,这时需要用到转换流InputStreamReader的InputStreamReader(InputStreamin,StringcharsetName)方法。作为转换

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

今天梳理IO笔记时发现一个问题–FileReader是鸡肋吗,它有用吗???

在使用字符流读取文本文件时(且不使用包装流时),有两种类提供读取文件方法,分别是InputStreamReader和FileReader,后者为前者子类。

引言–当文本文件编码与编译工具默认编码不同时,FileReader类的方法读取文件会出现乱码的情况,这时需要用到转换流InputStreamReader的InputStreamReader(InputStream in, String charsetName) 方法。

作为转换流的子类,FileReader功能不是应该比父类丰富吗?

查看API得知:

FileReader构造方法比父类少且没有一个新方法,全是继承来的方法。
那么FileReader存在的意义是什么呢?

当字符文件编码与默认编码相同时,FileReader比InputStreamReader更加便利(可能是当遇到海量字符文件读取时,FileReader的效率更高吗?)

在这里插入图片描述

FileReader优点仅此而已吗?本人不得而知,知道的请在评论区留下足迹。

接下来就轮到转换流了

回到引言说的话,我们来思考这个问题。

何时使用转换流?

1.如果使用非默认编码保存文件或者读取文件时,需要用到转换流,因为字节流的重载构造方法中有指定编码格式的参数,而FielReader 与 FileWriter 是默认编码的文本文件

比如:
当我们使用默认GBK编码保存文本时,下面2句代码其实是一样的效果,
new OutputStreamWriter(new FileOutputStream(“out.txt”))
new FileWriter(“out.txt”)

当要求保存为其他编码比如UTF-8时,就要这样写
new OutputStreamWriter(new FileOutputStream(“out.txt”),“UTF-8”)

而如果要读取一个UTF-8编码的文本文件时,同样的要用
new InputStreamReader(new FileInputStream(“in.txt”),“UTF-8”);

而不能用new FileWriter(“in.txt”)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189452.html原文链接:https://javaforall.net

(0)
上一篇 2026年4月13日 下午5:19
下一篇 2026年4月13日 下午5:25


相关推荐

  • modelsim-win64-10.4-se 破解攻略

    modelsim-win64-10.4-se 破解攻略在实验室换了新的win10系统,原来的quartus9.0在win10上安装不成功,没办法只能换成13.1版本,已经安装可用,下面是与其配合的modelsim-win64-10.4-se的破解攻略,安装教程可以去看正点原子的FPGA开发手册,写的很详细,但是没有讲破解方法,下面是可用的破解方法:软件安装好了却不能用,想必大家都有过这样的痛苦和无奈。这款软件的破解花了我整整一个下午的时间…

    2022年5月24日
    168
  • noip2020提高组试题_noip提高组

    noip2020提高组试题_noip提高组2020.04.01【NOIP提高组】模拟B组【0.LeftOut】题解题目大意:FarmerJohn正在尝试给他的牛群拍照。根据以往的经验,他知道这一工作往往结果不怎么样。这一次,FarmerJohn购买了一台昂贵的无人机,想要拍一张航拍照。为了使照片尽可能好看,他想让他的奶牛们在拍照时都朝向同一个方向。奶牛们现在在一块有围栏的草地上排列成N×N(2≤N≤1000)的方阵,例如:R…

    2025年8月20日
    7
  • IC验证培训——SystemVerilog通用程序库(下)

    IC验证培训——SystemVerilog通用程序库(下)路桑的个人网址:路科验证-IC验证培训-数字芯片验证五、类方法还是包函数?我们最初的直觉是将svlib作为一组SystemVerilog类呈现给用户。我们假设由一个类来表示一个正则表达式,另一个类来表示一个文件名,等等。从库写作者的角度来看,以这种方式打包用户数据是非常有吸引力的,因为它允许我们将任意隐藏数据与每个对象相关联。 我们在编写面向用户的API时,上遇到了一个严…

    2025年9月3日
    7
  • Android使用charles抓包

    Android使用charles抓包1.下载并安状软件,官网在此:2.前题条件,电脑和手机必须在同一网段3.在Charles界面选择菜单proxy->proxysettings 勾选”EnabletransparentHTTPproxying”确定代理端口,默认”8888″就可以了4.在手机的wifi节点设置里设置代理。勾选”显示高级选项”,在出现的内容填入代理主机的IP(也就是你装了

    2022年6月10日
    76
  • java版我的世界免费获取,持续更新~

    java版我的世界免费获取,持续更新~我的世界:Java版将与基岩版”地形”生成统一!1.18的隐藏更新!保持了JAVA版一致?事实上若你足够了解JAVA版的种子,你会发现其实很多不同的种子代码,会得到的是一个完全一致的世界。04问题四:未来未来JAVA版我的世界,和基岩版的Minecraft,它们真的可能变得完全一致!05问题五:Mojang为什么要让地形统一?一直以来,基岩版最大的魅力就。我的世界:java版免费披风,账号迁移轮到我了,快来看看怎么操作导致启动器显示我没有购买Minecraft,只有试玩资格。只有你选择微软账

    2022年7月8日
    51
  • 并发和并行区别秒懂

    并发和并行区别秒懂你吃饭吃到一半 电话来了 你一直到吃完了以后才去接 这就说明你不支持并发也不支持并行 你吃饭吃到一半 电话来了 你停了下来接了电话 接完后继续吃饭 这说明你支持并发 不一定是同时的 你吃饭吃到一半 电话来了 你一边打电话一边吃饭 这说明你支持并行 并发的关键是你有处理多个任务的能力 不一定要同时 并行的关键是你有同时处理多个任务的能力 所以我认为它

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号