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());
}
}
}