import java.io.PrintStream;
import java.util.Scanner;
public class OutputTest
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
PrintStream out = new PrintStream(System.out);
while(true)
{
int in = scan.nextInt();
if(in == 0) break;
System.out.println(in*in);
}
out.flush();
}
}
我期待这个程序获取一个数字列表,每行一个,然后当它达到零时,打印所有的正方形,每行一个。相反,它只是呼应我用方块输入的每个数字。
理想情况下,我实际上会包括以下行:
System.setOut(out);
然后正常编写我的程序的其余部分(除了最后的刷新),但这具有立即回显的相同结果。
但是,将 更改PrintStream
为 aPrintWriter
确实可以按预期进行这项工作,但是我不能这样做,System.setOut
因为PrintWriter
不会扩展OutputStream
.
为什么这不符合我的预期?