java - getclass - getResourceAsStream-¿Qué codificación se lee?
getresourceasstream path (2)
Estoy usando getResourceAsStream para acceder a un archivo local. ¿Qué codificación asume que es el archivo?
No sé cómo usar la codificación en getResourceStream()
, generalmente puede consultar la propiedad file.encoding
o Charset.defaultCharset()
para encontrar la codificación predeterminada actual. Es mejor especificar explícitamente la codificación deseada (es decir, "UTF-8 ") en el código. De esta manera, funcionará incluso en diferentes plataformas.
También cómo leer un archivo, puede ver esta publicación Cómo crear una cadena Java a partir del contenido de un archivo La respuesta de Jon Skeet.
InputStream
s no tiene codificaciones. Solo son flujos de bytes. Reader son para texto con una codificación. Puede crear un Reader
con un conjunto de caracteres específico de un InputStream
como este:
Reader reader = new InputStreamReader(inputStream, "UTF-8");
Si está utilizando un conjunto de caracteres que está garantizado para ser compatible con todas las plataformas Java como UTF-8, puede evitar tener que lidiar con las Charsets
Charsets.UTF_8
usando una constante de la clase Charsets
de Guava como Charsets.UTF_8
.