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();
}
}
私は、このプログラムが 1 行に 1 つずつ数字のリストを取得し、それがゼロに達したときにすべての四角形を 1 行に 1 つずつ出力することを期待しています。代わりに、入力した各数値を正方形でエコーするだけです。
理想的には、実際に次の行を含めます。
System.setOut(out);
次に、プログラムの残りの部分を通常どおりに書き込みます(最後のフラッシュを除く)が、これはすぐにエコーするという同じ結果になりました。
ただし、PrintStream
を aに変更すると、PrintWriter
期待どおりに機能しましたが、拡張されていないSystem.setOut
ため実行できません。PrintWriter
OutputStream
これが期待どおりに動作しないのはなぜですか?