1. 程式人生 > >將檔案中內容讀入作為java程式的輸入

將檔案中內容讀入作為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的輸出重定向到檔案輸出,而不是在螢幕上輸出。

  1. import java.io.FileOutputStream;  
  2. import java.io.PrintStream;  
  3. publicclass Test {  
  4.     publicstaticvoid main(String[] args) throws Exception  
  5.     {  
  6.         PrintStream ps=new PrintStream(new FileOutputStream("work"));  
  7.         System.setOut(ps);  
  8.         System.out.println("Hello World!");  
  9.     }  
  10. }  

下面的程式碼將System.in重定向到檔案輸入,所以將不接受鍵盤輸入

  1. import java.io.FileInputStream;  
  2. import java.util.Scanner;  
  3. publicclass Test {  
  4.     publicstaticvoid main(String[] args) throws Exception  
  5.     {  
  6.         FileInputStream fis=new FileInputStream("work");  
  7.         System.setIn(fis);  
  8.         Scanner sc=new Scanner(System.in);  
  9.         while(sc.hasNextLine())  
  10.         {  
  11.             System.out.println(sc.nextLine());  
  12.         }  
  13.     }  
  14. }  
重定向內容參考自:http://blog.csdn.net/zhy_cheng/article/details/7891142