我编写了一个简单的代码,将控制台的输出打印到BytreArrayOutputStream。我正在使用JDK 1.7。但是,当我要将缓冲区缓冲为字符串时,不能使用BytreArrayOutputStream.ToString(String Charset)方法。

它没有此功能。我正在使用JDk1.7,应该支持它。
我在Windows 7中使用Netbean。

PrintStream co1=new PrintStream(new java.io.ByteArrayOutputStream());
System.setOut(co1);
StatsUtil.submit(command);
co1.flush();
co1.close();
co1.toString();//acceptted this but it doesn't give me the stream content
String t=co1.toString("UTF-8");//the compliers give me errors the method doesn't get any string parameter


任何帮助将不胜感激。

最佳答案

您需要在toString()本身上调用ByteArrayOutputStream,而不是包装它的PrintStream。尝试使用以下代码:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream co1 = new PrintStream(baos, "UTF-8");
System.setOut(co1);
StatsUtil.submit(command);
co1.flush();
co1.close();
String t = baos.toString("UTF-8");

10-01 14:35