Java - System.setOut() 与 System.setIn()

setOut()方法可以改变输出流

package java1200;  
  
//可以向文件里写数据  
import java.io.FileNotFoundException;  
import java.io.PrintStream;  
  
public class RedirectOutputStream {  
    public static void main(String[] args) {  
        try {  
            PrintStream out = System.out;  
            PrintStream ps = new PrintStream("./log.txt");  
  
            System.setOut(ps);  
            int age = 11;  
            System.out.println("年龄变量成功定义,初始值为11");  
            String sex = "女";  
            System.out.println("年龄变量成功定义,初始值为女");  
            // 整合2个变量  
            String info = "这是个" + sex + "孩子,应该有" + age + "岁了";  
            System.setOut(out);  
            System.out.println("程序运行完毕,请查看日志");  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        }  
  
    }  
  
}  

那么setIn()是不是可以改变输入流呢?

import java.io.InputStream;  
import java.io.FileInputStream;  
import java.io.FileNotFoundException;  
import java.util.Scanner;  
  
public class Read {  
    public static void main(String[] args) {  
        try {  
            InputStream in = System.in;  
            InputStream ps = new FileInputStream("./log.txt");  
            System.setIn(ps);  
            Scanner scanner = new Scanner(System.in);  
            String line = "";  
            while (scanner.hasNextLine()) {  
                line = scanner.nextLine();  
                System.out.println(line);  
            }  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        }  
  
    }  
}  

猜你喜欢

转载自blog.csdn.net/qq_40395278/article/details/81045859