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

时间:2013-11-27 14:04:44

标签: java utf-8 character-encoding

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

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

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

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

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

我在互联网上搜索但我得到的只是在bufferreader / inputstream阅读器中输出(例如Reading InputStream as UTF-8http://www.mkyong.com/java/how-to-read-utf-8-encoded-data-from-a-file-java/

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

1 个答案:

答案 0 :(得分:5)

InputStream无法处理文字,因此它不关心编码,因此您问题的直接答案是:不,您不能使用UTF-8编码创建InputStream

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

如果您想要从文件读取文本,您需要构建Reader然后,您需要指定编码(UTF-8)对你而言)在构造函数中。

如果您向我们展示InputStream的数据转化为Stringchar[]个对象的位置,那么我可以向您显示需要更改代码的位置。< / p>