如果我想做输出,Scanner/System.in 的模拟是什么?

What is the analogue for Scanner/System.in if I want to do the output?

如果我使用扫描仪类型读取 System.out,我可以轻松地从 System.in 切换到某个文件,因此我可以测试使用输入的方法。

    String line;

       Scanner in = new Scanner(System.in);  // reading from the command line
    
    // or
 
       File file = new File(someFileName);   
       in = new Scanner(file);              // reading from the file

    System.out.print("Type something: ");
    line = in.nextLine();
    System.out.println("You said: " + line);

但是,如果我希望我的方法交替写入文件或写入文件,我可以使用什么类型来输出相同的开关?System.out?

System.out 是一个 PrintStream。您始终可以创建自己的写入文件的 PrintStream。

PrintStream out = System.out;
out.print("Write to console");
out = new PrintStream(new File("path"));
out.print("Write to file");

请小心。System.out 不应关闭,而应关闭从文件创建的 PrintStream