天天看點

Java重定向标準輸入/輸出

Java的标準輸入/輸出分别通過System.in和System.out來代表,在預設的情況下分别代表鍵盤和顯示器,當程式通過System.in來獲得輸入時,實際上是通過鍵盤獲得輸入。當程式通過System.out執行輸出時,程式總是輸出到螢幕。

在System類中提供了三個重定向标準輸入/輸出的方法

static void setErr(PrintStream err) 重定向“标準”錯誤輸出流

static void setIn(InputStream in)    重定向“标準”輸入流

static void setOut(PrintStream out)重定向“标準”輸出流

下面程式通過重定向标準輸出流,将System.out的輸出重定向到檔案輸出,而不是在螢幕上輸出。

import java.io.FileOutputStream;
import java.io.PrintStream;
public class Test {
	public static void main(String[] args) throws Exception
	{
		
		PrintStream ps=new PrintStream(new FileOutputStream("work"));
		System.setOut(ps);
		System.out.println("Hello World!");

	}
	


	
}
      

下面的代碼将System.in重定向到檔案輸入,是以将不接受鍵盤輸入

import java.io.FileInputStream;
import java.util.Scanner;


public class Test {
	public static void main(String[] args) throws Exception
	{
		FileInputStream fis=new FileInputStream("work");
		System.setIn(fis);
		
		Scanner sc=new Scanner(System.in);
		while(sc.hasNextLine())
		{
			System.out.println(sc.nextLine());
		}
		

	}
	


	
}