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);
            }
        }
    }

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

  • 相关阅读:
    Fibonacci Again
    N的10000的阶乘
    HDU2141(二分搜索)
    POJ2366(HASH法)
    10106 Product
    UVA 401 Palindromes
    UVA424 Integer Inquiry
    POJ2503(二分搜索)
    mysql重置root密码
    tidb安装haproxy负载均衡
  • 原文地址:https://www.cnblogs.com/0xcafedaddy/p/4561172.html
Copyright © 2011-2022 走看看