我似乎无法确定任何区别InputStreamReader和FileReader另外两个被初始化的方式。使用一个或另一个有什么好处吗?其他大多数文章都介绍了FileInputStreamvs InputStreamReader,但与此FileReader相反。在我看来,它们都有相同的目的。
InputStreamReader
FileReader
FileInputStream
首先,InputStreamReader可以处理所有输入流,而不仅仅是文件。其他示例是网络连接,类路径资源和ZIP文件。
其次,FileReader直到Java 11不允许您指定编码,而只使用平台默认编码,这使它几乎无用,因为当代码在具有不同平台默认编码的系统上运行时,使用它会导致数据损坏。
由于Java 11 FileReader的用于包装的一个有用的快捷键InputStreamReader周围FileInputStream。