我正在使用getResourceAsStream来访问本地文件。它假设文件是什么编码?
答案 0 :(得分:38)
InputStream
没有编码。它们只是字节流。 Reader用于带编码的文本。您可以使用Reader
中的特定字符集创建InputStream
,如下所示:
Reader reader = new InputStreamReader(inputStream, "UTF-8");
如果您使用的是在UTF-8等所有Java平台上都支持的字符集,则可以避免使用来自Guava的常量来处理不可能UnsupportedEncodingException
的问题。 Charsets
类似Charsets.UTF_8
。
答案 1 :(得分:1)
我不知道如何在getResourceStream()
中使用编码,通常您可以查询file.encoding
属性或Charset.defaultCharset()
来查找当前的默认编码。最好明确指定所需的代码中的编码(即“UTF-8”)。通过这种方式,它甚至可以在不同平台上运行。
另外如何阅读文件,你可以看看How to create a Java String from the contents of a file Jon Skeet的回答。