如何纠正这里不允许的void和java.io.PrintStream这里不能应用错误?

时间:2013-02-12 08:16:20

标签: java file-io

有生成content.html的方法。

contentPage(new PrintStream(socket.getOutputStream(), false));

我想看看内容,我试过

br.write("Content Page: : : "+contentPage()); 

但得到了错误

  

无法应用contentPage(java.io.PrintStream)..

我试过

br.write("Content Page: : : "+contentPage(ps)); 

其中psPrintStream的引用,并收到错误

  

此处不允许使用void类型

我是Java新手,请帮我打印内容。

3 个答案:

答案 0 :(得分:0)

contentPage(ps)返回类型可能是void,这意味着它不会返回任何内容。

因此,您不应在contentPage(ps)方法

中使用br.write()

答案 1 :(得分:0)

您可以两次调用contentPage(ps):

contentPage(new PrintStream(socket.getOutputStream(), false));
contentPage(System.out);

将html输出到控制台,

或者,您可以先将html放在缓冲区中:

ByteArrayOutputStream bos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(bos, false);
contentPage(ps);
ps.close();
byte[] data = bos.toByteArray();

OutputStream out = socket.getOutputStream();
out.write(data);

br.write("Content Page: : : " + new String(data));

答案 2 :(得分:0)

您必须查看参数contentPage()的类型。

来自你的错误:

  1. contentPage(java.io.PrintStream) can not be applied..因为您的方法参数不是PrintStream
  2. void type not allowed here因为contentPage(ps)返回的类型为void。
  3. 请参阅您的方法contentPage()参数类型并传递参数相同。