Java 中 BufferedReader 里 readLine()方法每次只能读一行 能不能一次读到文件结尾??
答案:2 悬赏:10
解决时间 2021-02-12 19:30
- 提问者网友:你独家记忆
- 2021-02-12 05:51
Java 中 BufferedReader 里 readLine()方法每次只能读一行 能不能一次读到文件结尾??
最佳答案
- 二级知识专家网友:平生事
- 2021-02-12 06:38
不可以直接读到文件末尾。
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();
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楼网友:神鬼未生
- 2021-02-12 08:14
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;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯