Подтвердить что ты не робот

GetResourceAsStream - Какую кодировку читать?

Я использую getResourceAsStream для доступа к локальному файлу. Какая кодировка предполагает, что файл есть?

4b9b3361

Ответ 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.