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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicat 在线激活码(最新序列号破解)

    navicat 在线激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    54
  • 第三方API接口_第三方个人支付接口

    第三方API接口_第三方个人支付接口转载:https://www.jianshu.com/p/fdaba9124ae7下面列举了国内的常用、实用的API接口,按照笔记、出行、词典、电商、地图、电影、即时通讯、开发者网站、快递查询、旅

    2022年8月4日
    6
  • 模板方法模式例子「建议收藏」

    模板方法模式例子「建议收藏」原文地址:http://www.cnblogs.com/jenkinschan/p/5768760.html一、概述 模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。二、结构类图三、解决问题模板方法就是提供一个算法框架,框架里面的步骤有些是父类已经定好的,有些需要子类自己实现。相当于要去办一件事情,行动的流

    2025年6月9日
    3
  • 白盒测试用例设计方法有哪些_软件测试语句覆盖测试用例

    白盒测试用例设计方法有哪些_软件测试语句覆盖测试用例白盒测试设计方法编写:天林问题:白盒测试方法的概念及应用场景白盒测试方法用各种逻辑覆盖法来和设计白盒测试用例使用基本路径法来设计白盒测试用例内容:白盒测试的基本介绍白盒测试用例设计方法静态设计方法动态设计方法一、白盒测试的概念及特点1、什么是白盒测试代码逻辑的测试白盒测试,又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。此时,测试工程师需深入考察程序代码的内部结构、逻辑设计等。对于白盒测试工程师来说,软件产品内部构成是透明的。下列代码是

    2022年10月12日
    2
  • vue-jsonp_js创建json数组对象

    vue-jsonp_js创建json数组对象前后端分离开发中,后端返回的接口中的数据是json字符串格式,而前端需要json字符串格式,如何进行json字符串和json对象之间的相互转换

    2022年10月6日
    2
  • RelativeLayout.LayoutParams学习与运用

    RelativeLayout.LayoutParams学习与运用1、了解LayoutParams其实LayoutParams就是代表一个布局属性,每一个ViewGroup对应一种LayoutParams。LinearLayout对应LinearLayout.LayoutParams,RelativeLayout对应RelativeLayout.LayoutParams。我们在XML中写的大多数属性,在代码中通过LayoutParams同样可以操作界面布局。下面以

    2022年7月17日
    16

发表回复

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

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