重定向标准输入/输出
package cn.test; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import java.io.PrintWriter; import java.util.Scanner; import org.junit.Test; /* * 重定向标准输入/输出 */ public class Demo6 { @Test //重定向标准输出,不从控制台输出,而是写到文件中 public void redirectOut(){ try { FileOutputStream fos = new FileOutputStream("D:/temp/test.txt"); //创建PrintStream输出流 PrintStream ps = new PrintStream(fos); //将标准输出重定向到ps输出流 System.setOut(ps); //控制台不再输出hello,而是写到文件test.txt System.out.println("hello"); } catch (FileNotFoundException e) { e.printStackTrace(); } } @Test
//将使用文件作为标准输入,而不是键盘 public void rediretIn(){ try { FileInputStream fis = new FileInputStream("D:/temp/test.txt"); //将标准输入流重定向到fis输入流 System.setIn(fis); //创建Scanner对象,用于获取标准输入 Scanner sc = new Scanner(System.in); //只把回车最为分隔符 sc.useDelimiter("\n"); while(sc.hasNext()){ System.out.println("键盘输入的内容是:" + sc.next()); } sc.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }