我不确定这是否可行。 我尝试过像
这样的事情ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
PrintWriter pw = new PrintWriter(byteStream);
pw.write("TEST STRING");
当我尝试System.out.println(byteStream.toString())
时;它打印一个空字符串。
当我尝试System.out.println(byteStream.size())
时,它打印0,
意味着在打印编写器写入后,ByteArrayOutputStream中的字节缓冲区为空?我不确定这是否是使用PrintWriter进行字节数组的唯一方法。还有另一种方法吗?
答案 0 :(得分:2)
您的输出需要刷新到流。您可以执行以下操作之一:
PrintWriter
自动刷新,并致电println
以包含换行符。PrintWriter pw = new PrintWriter(byteStream, true);
pw.println("TEST STRING");
PrintWriter pw = new PrintWriter(byteStream);
pw.write("TEST STRING");
pw.flush();
PrintWriter
会刷新输出(已在评论中指出)。