当前位置: 首页 > 知识库问答 >
问题:

Java bufferedreader在读取行时有时会跳过第一个字符

易星纬
2023-03-14
LINE: #ifndef RECTANGLE_H
LINE: include "Shape.h"
LINE: lass Rectangle : public Shape {
LINE: rivate:
LINE: double _width;
LINE: std::vector<b2Vec2*>* _vertices;
LINE: ublic:
LINE: Rectangle(std::vector<b2Vec2*>* vertices) { _vertices = vertices;};
LINE: void createVertices();
LINE: bool isMimePoint(b2Vec2);
LINE: double getWidth(){return _width;};
LINE: void setWidth(double width);
LINE: void setHeights(double heights);
LINE: ShapeType getType();
LINE: void moveOn( b2Vec2 ,b2Vec2*);
LINE: virtual b2Vec2* getCenter();
LINE: ;
LINE: endif

这里是我的源代码:

String path = file.getPath();
BufferedReader _br;
    try {
        _br = new BufferedReader(new FileReader(path));

        do {
            System.out.println("LINE: " + _br.readLine());
            lines.add(_br.readLine());
        } while (_br.read() != -1);

        _br.close();
    } catch (Exception e) {
        System.out.println("Error reading file: " + e.getMessage());
    }

共有1个答案

梁泰
2023-03-14

您正在打印每第二行,保存每第二行,并跳过每第二行的开始。您在三个地方读取数据,并以不同的方式使用数据。一旦您拥有_br.read()字符,它就不会再读取它,所以它不会出现在行中。

更好的方法是使用

String line;
while((line = _br.readLine()) != null) {
   System.out.println(line);
   lines.add(line);
}

正如您所看到的,它在一个地方读取,并且一致地使用该值。

 类似资料:
  • 问题内容: 我有一个笨拙的csv文件,我需要跳过第一行来阅读它。 我正在使用python / pandas轻松做到这一点 但是我不知道如何在Go中做到这一点。 错误: : 问题答案: 读取csv文件时跳过第一行 例如, 输出:

  • 我试图编写一个简单的复数计算器,可以计算以下表达式: 输入1:(10 30i)(90 20i) 预期输出:(100 50i) 输入2:(10 30i)-(90 20i) 预期输出:(-80 10i) 编辑:我注意到第一次前瞻读取是10而不是40(ascii值 '(' ) . 我如何解决这个问题? 我的代码: 但它总是输出“对不起,我帮不了你。”

  • 当使用扫描仪对象从文本文件中读取时,我希望它跳过文件中的第一行。我该怎么做?

  • 使用poi读取某些excel失败,遇到此错误 从,存在

  • 在 Mule 4 中,我正在读取一个大型 csv 文件进行转换,需要将内容写入数据库表。csv 文件没有标头。当我默认运行集成时,第一行被跳过,就好像默认值被预先确定为标题一样。 我看了一下应用程序类型。xml,看起来头被设置为false,如下所示 任何建议都将不胜感激。谢谢

  • 问题内容: 我正在尝试读取日志文件,并将某些值与预设阈值进行比较。我的代码设法通过函数中的第一个循环记录原始数据。 我添加了打印语句以尝试弄清楚发生了什么,并且我已经推断出我的第二个for循环永远不会“发生”。 这是我的代码: 这就是我调用此函数的方式: 看起来像这样: 我尝试谷歌搜索类似的问题,但没有发现。我尝试将我的第一个for循环移入,但是发生相同的问题。目前没有语法错误,我现在无法看到该问