Pregunta

Why does these 2 blocks of code result in a different byte-array?

Apache Commons IO 2.4:

Charset iso_8859_1 = Charset.availableCharsets().get("ISO-8859-1");
return IOUtils.toByteArray(new FileReader(getResourceFile(filename)), iso_8859_1);

JDK:

Charset iso_8859_1 = Charset.availableCharsets().get("ISO-8859-1");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(baos, iso_8859_1));
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(getResourceFile(filename)), iso_8859_1));
String line;
while ((line = reader.readLine()) != null)
    writer.write(line);

writer.flush();
return baos.toByteArray();

Tell me I'm seeing ghosts ...

¿Fue útil?

Solución

Try using FileInputStream, since one can't specify charset with a FileReader.

IOUtils.toByteArray(new InputStreamReader(new FileInputStream(getResourceFile(filename)), "ISO-8859-1"), "ISO-8859-1")              
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top