【发布时间】:2013-12-05 06:37:01
【问题描述】:
我想将输入流转换为字节数组。我知道我可以使用 commons-io 中的 IOUtils。但我正在练习java io的一些基础知识。我使用 BufferedReader 读取了一个 xml 文件,并尝试使用 BufferedWriter 将其写入 ByteArrayOutputStream。但它不起作用。
当我直接写入 ByteArrayOutputStream 时,它的工作原理。我的代码有什么问题?
try (InputStream inputStream = getClass().getResourceAsStream(
"/productInventory.xml");
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(
new OutputStreamWriter(arrayOutputStream));
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(inputStream));) {
String line = "";
while ((line = bufferedReader.readLine()) != null) {
bufferedWriter.write(line);
}
System.out.println(arrayOutputStream.size());
} catch (IOException e) {
e.printStackTrace();
}
当我在循环中包含以下行时,它的工作原理
arrayOutputStream.write(line.getBytes(), 0, line.getBytes().length);
使用 BufferedWriter 有什么问题?
【问题讨论】: