System类中提供了重定向标准输入、输出的方法。
public class RedirectOut { public static void main(String[] args) { try (PrintStream ps = new PrintStream(new FileOutputStream("out.txt"))) { // redirect the output to ps System.setOut(ps); System.out.println("hello"); System.out.println(new RedirectOut()); } catch (IOException e) { e.printStackTrace(); } } }
public class RedirectIn { public static void main(String[] args) { try (FileInputStream in = new FileInputStream( "src/inputandoutput/RedirectIn.java")) { System.setIn(in); Scanner scan = new Scanner(System.in); // only use \n as Delimiter scan.useDelimiter("\n"); while (scan.hasNext()) { System.out.println("content:" + scan.next()); } } catch (IOException e) { e.printStackTrace(); } } }