2016-03-07 70 views
1

下面我有下面的代碼來讀取一個文件,並逐行通過它..這是使用java的BufferedReader類。我很好。如何用Java的BufferedReader與InputStreamReader讀取文件?

String filename = "C:\\test.txt" 
String line = null; 

FileReader fileReader = new FileReader(filename); 
BufferedReader bufferedReader = new BufferedReader(fileReader); 

try { 
    while (((line = bufferedReader.readLine()) != null)) { 

    //do the following.... 

    } 

} catch (IOException) { 
    e.printStackTrace(); 
    } 

但是我想現在開始在Spring/Java中使用InputStreamReader。我寫了下面的代碼,但我不確定如何逐行掃描我的文件。真的很困惑這部分。任何人有任何想法或知道如何做到這一點?

String filepath= "C:\\test.txt" 
File filename= new File(filepath); 

try { 
    InputStream fileInputStream = new BOMInputStream(new fileInputStream(filename)); 

// now want to step through the file, line by line.. 

} catch (IOException) { 
    e.printStackTrace(); 
    } 

感謝

+2

任何理由不只是使用'新的InputStreamReader(的FileInputStream)'? – chrylis

+0

[Convert InputStream to BufferedReader]的可能重複(http://stackoverflow.com/questions/5200187/convert-inputstream-to-bufferedreader) – Neil

+0

備註:考慮使用NIO.2 File API。 – Puce

回答

0

這是如何通過使用字節讀取InputStreamReader的輸入文件字節。

char[] chars = new char[100]; 
    try { 
     InputStream inputStream  = new FileInputStream("C:\\test.txt"); 
     InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"UTF-8");   
     inputStreamReader.read(chars);   
     System.out.println(new String(chars).trim()); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
0

檢查了這一點 -

String filename = "C:\\test.txt" 
String line = null; 

FileInputStream fileInputStream = new FileInputStream(filename); 
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream)); 

try { 
    while (((line = bufferedReader.readLine()) != null)) { 

    //do the following.... 

    } 

} catch (IOException) { 
    e.printStackTrace(); 
} 
0
public static void main(String[] args) { 
    try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\test.txt")))) { 

     reader.lines().forEach(line -> { 
      // do what you want with the line 
     }); 

    } catch (IOException e) { 
     throw new RuntimeException(e); 
    } 

} 
相關問題