Java 中 BufferedReader 里 readLine()方法每次只能读一行 能不能一次读到文件结尾??
不可以直接读到文件末尾。
readLine顾名思义,每次读取一行,一般用于文件解析。
可以自己封装一个读取到文件末尾的函数。比如:
StringBuffer content= new StringBuffer();BufferedReader reader = new BufferedReader(in);
int ch;
while ((ch = reader.read()) != -1) {
content.append((char) ch);
}
reader.close();
return content.toString();
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-05-12
readLine()方法读出是null,就表示文件结尾了。
这么写,可以一直读到文件结尾:
while( (line=readLine())!=null){System.out.println(line);
}
完整程序如下:
import java.io.BufferedReader;import java.io.FileReader;
import java.io.IOException;
public class BufferTest {
public static void main(String[] args) {
try {
BufferedReader br=new BufferedReader(new FileReader("test.txt"));
String line=null;
while( (line=br.readLine())!=null){
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}追问
我是准备在那个while循环里调用一个方法 目的在于 将文件里的所有字符串输入到一个新的string里, 如果这样写,多行的话, 每一次读 都会覆盖前面的内容。 =。= 咋弄?
追答那你在循环里用一个新字符串加起来么
newString += line;