getResourceAsStream - Какая кодировка читается как? - PullRequest
17 голосов
/ 08 апреля 2011

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

Ответы [ 2 ]

38 голосов
/ 08 апреля 2011

InputStream s не имеют кодировок. Они просто потоки байтов. Reader s - для текста с кодировкой. Вы можете создать Reader с определенной кодировкой из InputStream следующим образом:

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

Если вы используете кодировку, которая гарантированно поддерживается на всех платформах Java, таких как UTF-8, вы можете избежать необходимости работать с невозможными UnsupportedEncodingException s, используя константу из Guava . Charsets класс как Charsets.UTF_8.

1 голос
/ 08 апреля 2011

Я не знаю, как использовать кодировку в getResourceStream(), обычно вы можете запросить свойство file.encoding или Charset.defaultCharset(), чтобы найти текущую кодировку по умолчанию. Лучше явно указать требуемую кодировку (т. Е. "UTF-8 ") в коде.Таким образом, он будет работать даже на разных платформах.

Также как читать файл, вы можете посмотреть этот пост Как создать строку Java из содержимого файла JonОтвет Скита.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...