除了InputStreamReader和FileReader的初始化方式不同之外,我似乎无法确定这两者之间有什么区别。使用其中一种有什么好处吗?大多数其他文章都介绍了FileInputStream与InputStreamReader,但我将其与FileReader进行了对比。在我看来,它们都有相同的目的。
发布于 2011-11-03 16:13:41
首先,InputStreamReader可以处理所有输入流,而不仅仅是文件。其他示例包括网络连接、类路径资源和ZIP文件。
其次,Java11之前的FileReader不允许您指定编码,而是只使用plaform默认编码,这使得它非常无用,因为当代码在具有不同平台默认编码的系统上运行时,使用它会导致数据损坏。
从Java11开始,FileReader是将InputStreamReader包装在FileInputStream中的一种有用的快捷方式。
发布于 2011-11-03 16:14:39
FileReader从文件系统中的文件中读取字符。InputStreamReader从任何类型的输入流中读取字符。流可以是FileInputStream,但也可以是从套接字、HTTP连接、数据库blob等获取流。
我通常更喜欢使用包装FileInputStream的InputStreamReader来读取文件,因为它允许指定特定的字符编码。
发布于 2011-11-03 16:10:43
FileReader扩展了InputStreamReader。唯一的区别是FileReader具有构造函数,这些构造函数假定您是从String filename、File file和FileDescriptor fd等文件中读取数据
我建议您查看一下FileReader的源代码以了解更多信息。
https://stackoverflow.com/questions/7991770
复制相似问题