首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileReader优势与FileInputStream优势

FileReader优势与FileInputStream优势
EN

Stack Overflow用户
提问于 2014-01-04 22:02:02
回答 6查看 8.7K关注 0票数 8

根据我可以在堆栈溢出上读取的内容,FileReader只接收文件,其中FileInputStream可以读取所有文件。但是使用FileReader有什么好处吗?会更快吗?

我读到:

"FileReader不允许您指定编码,而是使用plaform默认编码,这使得它几乎毫无用处,因为当代码在具有不同平台默认编码的系统上运行时,使用它将导致数据损坏。“

但没能完全理解。平台默认编码意味着什么?

EN

回答 6

Stack Overflow用户

发布于 2014-01-04 22:05:39

主要区别是:

-基于字节(读或写字节)

阅读器-基于字符(读或写字符)

票数 14
EN

Stack Overflow用户

发布于 2014-01-04 22:16:27

  • InputStream是一个流,您可以从中读取字节。通常不会直接使用这个类,但如果使用了,则需要二进制数据。它有许多不同的子类,用于来自不同来源的输入,如FileInputStreamAudioInputStreamStringBufferInputStream等。
  • InputStreamReaderInputStream的包装器,它使用您喜欢的任何编码将流的字节转换为字符。通常,在创建InputStreamReader时指定字符编码。有几个不同的构造函数允许您这样做。如果要读取文本数据,可以使用InputStreamReader。首先使InputStream读取数据,然后将其包装在InputStreamReader中。
  • FileReader是一个专门的InputStreamReader,它只能从文件中读取,并且使用默认的平台编码。换句话说,它假定它读取的文件是根据操作系统的平台编码设置创建的。这通常是可以的;但是如果要读取具有不同编码的文件,则应该创建一个FileInputStream并将其包装在一个InputStreamReader中。
票数 13
EN

Stack Overflow用户

发布于 2014-01-04 22:03:56

平台默认编码,即JVM正在运行的操作系统使用的编码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20927278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档