2

これら 2 つのコード ブロックが異なるバイト配列になるのはなぜですか?

アパッチ コモンズ 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();

幽霊が見えると言って...

4

1 に答える 1

1

FileReader では文字セットを指定できないため、FileInputStream を使用してみてください。

IOUtils.toByteArray(new InputStreamReader(new FileInputStream(getResourceFile(filename)), "ISO-8859-1"), "ISO-8859-1")              
于 2012-09-03T07:41:22.910 に答える