是否可以为UTF-8文件创建InputStream?

adi*_*yag 1 java utf-8 character-encoding

我们正在对我们的生产代码进行一些代码更改.

在此之前,我们使用InputStream(基本上是FileInputStream)从文件路径读取文件,并将此InputStream传递给前面的许多方法.

现在我们意识到,文件也可以包含中文字符,所以我们要使用UTF-8编码.

我在字符串中有一个文件路径.并且知道,有时文件可以包含中文字符,有时不包含.

我不愿意在如此多的方法中进行更改,并且在创建InputStream(FileInputStream)时尝试以某种方式使用UTF-8编码.

我在互联网上搜索但我得到的只是在bufferreader/inputstream阅读器中输出(例如,阅读InputStream为UTF-8http://www.mkyong.com/java/how-to-read-utf-8-encoded-数据从-A-文件的java /

那么是否可以从文件路径读取文件并处理中文字符并在InputStram中转换它?

Joa*_*uer 5

一个InputStream不处理文本,所以它不关心编码,所以你的问题的直接答案是:不,你不能创建一个InputStreamUTF-8编码.

但是,您可以InputStream通过简单地携带字节来处理UTF-8文件,并且不会以任何方式操纵它们.

如果要从文件中读取文本,则需要构造a Reader,然后您需要在构造函数中指定编码(UTF-8).

如果您向我们展示了InputStream转换成数据Stringchar[]对象的数据,那么我可以向您显示需要更改代码的位置.