BufferedReader缓冲流中readline()方法的使用

张开发 2020-09-19 09:13:51
public void test01() throws IOException {
FileInputStream fle = new FileInputStream("d:/GBK文件.txt");
InputStreamReader isr = new InputStreamReader(fle, "GBK");
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
isr.close();
fle.close();
}

上面代码正常输出将line局部变量替换为readline方法后,就只会输出null,下面是修改后的代码:
public void test01() throws IOException {
FileInputStream fle = new FileInputStream("d:/GBK文件.txt");
InputStreamReader isr = new InputStreamReader(fle, "GBK");
BufferedReader br = new BufferedReader(isr);
while (br.readLine() != null) {
System.out.println(br.readLine());
}
br.close();
isr.close();
fle.close();
}
...全文
321 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2020-09-19
  • 打赏
  • 举报
回复
第二段代码是每次while循环会两次读取数据(也就是读取两行数据),和第一段代码明显不一样。
while (br.readLine() != null) { //这里会读取一次数据,调用br.readLine()就会读取一行(假设这里读取第一行)
System.out.println(br.readLine()); //这里会再读取一行(这一行和上一行不是同一行,这里读取的是第二行)
}

所以,如果你的文件内容只有1行,那就会像你说的那样,输出null

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧