2016-01-22 271 views
2

我使用InputStream讀取一些數據,所以我想讀取字符,直到換行或'\ n'。Java - 使用InputStream讀取行

+2

使用'BufferedReader'及其''readLine'方法。 Dupe of:http://www.stackoverflow.com/questions/5868369/how-to-read-a-large-text-file-line-by-line-using-java – Tunaki

回答

9

您應該使用的BufferedReader

BufferedReader reader=new BufferedReader(new FileInputStreamReader(pathToFile)) 

而且在循環使用它的readLine()方法

while(reader.ready()) 
{ 
    String line = reader.readLine() 
} 

但如果你真的喜歡InputStream,那麼你可以使用這樣的循環

InputStream stream; 
char c; 
String s = ""; 
do 
{ 
    c=stream.read(); 
    if(c== '\n') 
     break; 
    s += c + ""; 
}while(c != -1); 
+0

我希望能有一些成就:/。 Btw。 BufferedReader不支持編碼。 –

+1

你是指什麼內置? BufferedReader在java標準庫中,它實際上可以,你可以用這種方式指定編碼: '''''''''''''''''''' ' –

+0

不知道。我發現你可以使用InputStream來做到這一點,然後我想知道是否有任何方法讓InputStream readLine沒有一個while循環。我會嘗試提到的BufferedReader構造函數... –

0

對於文件,下面就讓你讀的每一行:

import java.io.FileNotFoundException; 
import java.util.Scanner; 
import java.io.File; 

public static void readText throws FileNotFoundException(){ 

    Scanner scan = new Scanner(new File("filename.txt")); 

    while(scan.hasNextLine()){ 
     String line = scan.nextLine(); 

    } 
} 
+0

這個答案與InputStreams無關 – slang