zoukankan      html  css  js  c++  java
  • 使用BufferedReader的时候出现的问题

    今天在使用BufferedReader的时候,出现了一个奇怪的问题

    有时候换行的时候,行首会少一个字符

    开始的代码是这样写的

    while( br.read()!=-1 ){
        String str = br.readLine();
        System.out.println(str);
        }

    问题点:

    通过查找资料发现,原来是自己在进行while循环的时候,所写的判断语句 br.read()!=-1 这里出现了问题。

    当程序读取时,会先读取一个br.read()一个字去判断是否是最后一个,如果不是,那么接下来将会读取一行,这个时候因为br.read()已经读取了一个字符

    再执行br.readLine()的时候自然会少读。

    修改后的代码:

    public class BufferReaderTest {
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new FileReader(new File(
                    "C:\TestFile.txt")));
            String str = null;
            while ((str = br.readLine()) != null) {
                System.out.println(str);
            }
        }
    }

    原理:直接使用一个字符串去存读到的数据,避免读取一个字符的现象发生。

  • 相关阅读:
    服务注册中心之Eureka使用
    微服务之服务注册中心
    Idea热部署功能
    微服务Cloud整体聚合工程创建过程
    微服务架构理论&SpringCloud
    关于母函数
    HDU 1028(母函数)整数划分
    1021 FIBERNACI
    1019
    1014 巧妙的gcd 生成元
  • 原文地址:https://www.cnblogs.com/0xcafedaddy/p/4561172.html
Copyright © 2011-2022 走看看