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