getResourceAsStream - 它读取的编码是什么?

时间:2011-04-08 04:30:09

标签: java file-io

我正在使用getResourceAsStream来访问本地文件。它假设文件是​​什么编码?

2 个答案:

答案 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的回答。