我们正在对我们的生产代码进行一些代码更改。
在此之前,我们使用InputStream(基本上是FileInputStream)从文件路径读取文件,并将此InputStream传递给前面的许多方法。
现在我们意识到,文件也可以包含中文字符,所以我们想要使用UTF-8编码。
我在字符串中有一个文件路径。并且知道,有时文件可以包含中文字符,有时不包含。
我不愿意在如此多的方法中进行更改,并且在创建InputStream(FileInputStream)时尝试以某种方式使用UTF-8编码。
我在互联网上搜索但我得到的只是在bufferreader / inputstream阅读器中输出(例如Reading InputStream as UTF-8或http://www.mkyong.com/java/how-to-read-utf-8-encoded-data-from-a-file-java/
那么是否可以从文件路径读取文件并处理中文字符并在InputStram中进行转换?
答案 0 :(得分:5)
InputStream
无法处理文字,因此它不关心编码,因此您问题的直接答案是:不,您不能使用UTF-8编码创建InputStream
你可以通过简单地携带字节来处理UTF-8文件就好InputStream
,并且绝不会以任何方式操纵它们。
如果您想要从文件读取文本,您需要构建Reader
和然后,您需要指定编码(UTF-8)对你而言)在构造函数中。
如果您向我们展示InputStream
的数据转化为String
或char[]
个对象的位置,那么我可以向您显示需要更改代码的位置。< / p>