Я использую getResourceAsStream для доступа к локальному файлу. Какая кодировка предполагает, что файл есть?
GetResourceAsStream - Какую кодировку читать?
Ответ 1
InputStream
не имеют кодировок. Это всего лишь потоки байтов. Reader предназначены для текста с кодировкой. Вы можете создать Reader
с определенной кодировкой из InputStream
следующим образом:
Reader reader = new InputStreamReader(inputStream, "UTF-8");
Если вы используете кодировку, которая будет поддерживаться на всех платформах Java, таких как UTF-8, вы можете избежать необходимости иметь дело с невозможным UnsupportedEncodingException
, используя константу из Guava Charsets
класс, например Charsets.UTF_8
.
Ответ 2
Я не знаю, как использовать кодировку в getResourceStream()
, обычно вы можете запросить свойство file.encoding
или Charset.defaultCharset()
, чтобы найти текущую кодировку по умолчанию. Лучше явно указать желаемую кодировку (например, "UTF- 8" ) в коде. Таким образом, он будет работать даже на разных платформах.
Также как читать файл, вы можете посмотреть этот пост Как создать строку Java из содержимого файла Ответ Jon Skeet.