java 输入输出IO流:标准输入/输出System.in;System.out;System.err;【重定向输入System.setIn(FileinputStream);输出System.setOut(printStream);】

时间:2022-05-31 23:32:15
Java的标准输入输出分别通过System.in和System.out来代表的,在默认情况下它分别代表键盘和显示器,当程序通过System.in来获取输入时,实际上是从键盘读取输入 当程序试图通过 System.out 执行输出时,程序总是输出到屏幕:
 
从System类的源码可以看出in;out;err这几个常量 的类型
java 输入输出IO流:标准输入/输出System.in;System.out;System.err;【重定向输入System.setIn(FileinputStream);输出System.setOut(printStream);】

重定向标准输出到文件:System.setOut(printStream);

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream; /**
* @ClassName PrintStreamExample
* @projectName: object1
* @author: Zhangmingda
* @description: XXX
* date: 2021/4/18.
*/
public class PrintStreamExample {
public static void main(String[] args) {
try(PrintStream printStream = new PrintStream(new FileOutputStream("输入输出文件读写/src/test/output/System.out.txt"))) {
System.setOut(printStream);
System.out.println("卧槽,打印到哪里了????"); //打印到文件里面了
}catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

重定向输入System.setIn(FileinputStream);

import com.sun.jdi.PathSearchingVirtualMachine;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner; /**
* @ClassName InputStreamSystemInExample
* @projectName: object1
* @author: Zhangmingda
* @description: XXX
* date: 2021/4/18.
*/
public class InputStreamSystemInExample {
public static void main(String[] args) {
try (InputStream inputStream = new FileInputStream("输入输出文件读写/src/test/output/System.out.txt")){
System.setIn(inputStream);
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()){ //看看是否还有下一行
System.out.println(scanner.nextLine()); //打印下一行
}
}catch (FileNotFoundException e ){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
}
}

java 输入输出IO流:标准输入/输出System.in;System.out;System.err;【重定向输入System.setIn(FileinputStream);输出System.setOut(printStream);】