Java I/O重定向

时间:2023-03-09 05:59:26
Java I/O重定向

1、输入重定向

  命令行:java [java类文件] < [输入文件路径名]

  代码:InputStream inputStream = new FileInputStream(
                    "[输入文件路径名]");
              System.setIn(inputStream);
              Scanner scanner = new Scanner(System.in);

2、输出重定向

  命令行:java [java类文件] > [输出文件路径名]

  Eclipse:Run-->Run Configurations-->Common-->勾选File,输入[输出文件路径名]

  代码:PrintStream printStream = new PrintStream(
                    "C:/Users/Administrator/Desktop/output.txt");
              System.setOut(printStream);

3、恢复重定向

   重定向功能不需要后,执行以下语句即可:

1)恢复“标准”错误输出流

FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err);
             System.setErr(new PrintStream(new BufferedOutputStream(fdErr, 128), true));

2)恢复“标准”输入流

FileInputStream fdIn = new FileInputStream(FileDescriptor.in);

System.setIn(new BufferedInputStream(fdIn));

3)恢复“标准”输出流
             FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);
             setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true));

以本人的观点,除非迫不得已,最好不要用方法二,除非你信心十足,否则谨慎为好!