getResourceAsStream - 它读作什么编码?

2022-09-02 05:34:25

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


答案 1

InputStream没有编码。它们只是字节流。读取器用于具有编码的文本。您可以使用特定的字符集创建一个,如下所示:ReaderInputStream

Reader reader = new InputStreamReader(inputStream, "UTF-8");

如果你使用的字符集保证在所有Java平台上都受支持,比如UTF-8,你可以通过使用Guava类中的常量来避免处理不可能的s,比如.UnsupportedEncodingExceptionCharsetsCharsets.UTF_8


答案 2

我不知道如何使用编码,一般可以查询属性或者查找当前默认 encoding.it 最好在代码中显式指定所需的编码(即“UTF-8”)。这样,它甚至可以跨不同的平台工作。getResourceStream()file.encodingCharset.defaultCharset()

同样如何读取文件,你可以看看这篇文章 如何从文件的内容创建一个Java字符串 Jon Skeet的答案。