Java 使用printWriter写入字节缓冲区?
我不确定这是否可能。 我试着做一些类似的事情Java 使用printWriter写入字节缓冲区?,java,buffer,printwriter,Java,Buffer,Printwriter,我不确定这是否可能。 我试着做一些类似的事情 ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); PrintWriter pw = new PrintWriter(byteStream); pw.write("TEST STRING"); 当我尝试执行System.out.println(byteStream.toString());它打印一个空字符串。 当我尝试执行System.out.println(byteStr
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后,ByteArrayOutputStream中的字节缓冲区为空?我不确定这是否是使用PrintWriter写入字节数组的唯一方法。还有其他方法吗?您的输出需要刷新到流中。您可以执行以下操作之一:
println
以包含换行字符,使PrintWriter
自动可冲洗PrintWriter
将刷新输出(如注释中所示)您的输出需要刷新到流中。您可以执行以下操作之一:
println
以包含换行字符,使PrintWriter
自动可冲洗PrintWriter
将刷新输出(如注释中所示)如果他们写完了,他们也可以
pw.close()
。@SpencerWieczorek是的;我已经在我的答案中添加了这个选项。哦,有趣的是,第二个选项起作用了!我想知道为什么第一个选项没有=/如果他们完成了编写,他们也可以pw.close()
。@SpencerWieczorek是的;我已经在我的答案中添加了这个选项。哦,有趣的是,第二个选项起作用了!我想知道为什么第一个选项没有=/
PrintWriter pw = new PrintWriter(byteStream, true);
pw.println("TEST STRING");
PrintWriter pw = new PrintWriter(byteStream);
pw.write("TEST STRING");
pw.flush();