2016-01-22 274 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