java - readLine 在 outfiling 时跳过行

标签 java bufferedreader

这段代码似乎不起作用;我的 csv 文件中有 10 行,但只有 5 行被打印出来。只有第 2,4,6,8,10 行被打印出来。

String text = CSVFile.readLine();
    while (text != null){
    //lines.add(infile.next());
    //outfile.println(lines);
    outfile.println(CSVFile.readLine());

    if (CSVFile.readLine()==null)
        break;
    }

我想我知道为什么它会跳过奇数,但我不知道如何解决它。 因为我告诉它 readLine() 两次,所以我相信它会从第一个开始,然后是第三个,然后依此类推。

最佳答案

因为你在 while 循环中调用了两次 readLine 。试试这个:

String text = CSVFile.readLine();
    while (text != null){
    outfile.println(text);
    text = CSVFile.readLine();

    if (text==null)
        break;

读取器是有状态的,并且记住上次调用该方法时它读取的位置...

关于java - readLine 在 outfiling 时跳过行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19665513/

相关文章:

java - 如何将字符串文件读入二维数组

java - Integer.parseInt 失败 'For input string: "500 0"'

java - 如何在java中搜索字符串及其后面的数字

Java从ArrayList中删除重复出现的对象并使其唯一

java - 存在时抛出 Jackson UnrecognizedPropertyException

java - 为什么这行得通? Java 正在四舍五入吗?

java - Tomcat 服务处于 Activity 状态但已退出

java - 如何通过对话框类中的按钮actionPerformed调用我的面板类中的方法,以获取面板类中的实例?

Java buffreader 中间关闭

java - 如何读取 BufferedReader 两次或多次?