Torben Vesterager
Torben Vesterager

Reputation: 508

Can't be: Error in org.apache.commons.io.IOUtils?

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 ...

Upvotes: 2

Views: 1349

Answers (1)

Idar
Idar

Reputation: 64

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")              

Upvotes: 1

Related Questions