將檔案中內容讀入作為java程式的輸入
標頭檔案:import java.io.FileReader;
方式一:
1.BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
2. reader = new BufferedReader(new FileReader("D:\\workspace\\nfv\\work"));
String tempString = null;
while ((tempString = reader.readLine()) != null) {
。。。。
}
方式二:
FileInputStream fis=new FileInputStream("work");
System.setIn(fis); //輸入重定向(若不需要重定向,可不使用)
Scanner sc=new Scanner(System.in);//建立一個Scanner物件例項
while(sc.hasNextLine())
{
。。。。
}
1.Scanner一個可以使用正則表示式來分析基本型別和字串的簡單文字掃描器,直接往硬碟寫資料;Scanner取得輸入資料的依據是空格符:如按下空格鍵,Tab鍵或者Enter鍵,Scanner就會返回下一個輸入。Scanner不能輸入空格,如果你希望取得含有空格的字串BufferedReader可以做到。
BufferedReader是字元輸入流中讀取文字,緩衝各個字元,從而提供字元、陣列和行的高效讀取。
2.System.in :InputStream類的物件實現標準輸入,可以呼叫它的read方法來讀取鍵盤資料。
System.out:PrintStream列印流類的的物件實現標準輸出,可以呼叫它的print、println或write方法來輸出各種型別的資料。
3.關於重定向
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;
- publicclass Test {
- publicstaticvoid 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;
- publicclass Test {
- publicstaticvoid 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());
- }
- }
- }
重定向內容參考自:http://blog.csdn.net/zhy_cheng/article/details/7891142