使用printWriter写入字节缓冲区?

时间:2018-02-17 00:34:11

标签: java buffer printwriter

我不确定这是否可行。 我尝试过像

这样的事情
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进行字节数组的唯一方法。还有另一种方法吗?

1 个答案:

答案 0 :(得分:2)

您的输出需要刷新到流。您可以执行以下操作之一:

  1. 使用the appropriate constructor使PrintWriter自动刷新,并致电println以包含换行符。
  2. PrintWriter pw = new PrintWriter(byteStream, true);
    pw.println("TEST STRING");
    
    1. 或者,您可以明确地清除它。
    2. PrintWriter pw = new PrintWriter(byteStream);
      pw.write("TEST STRING");
      pw.flush();
      
      1. 关闭PrintWriter会刷新输出(已在评论中指出)。