gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 01:53:10 28 4
gpt4 key购买 nike

我正在尝试使用缓冲读取器读取文件,但有时它会跳过一行中的第一个字符。这是我正在阅读的文件: http://files.moonmana.com/forums/Rectangle.h

这是我得到的结果:

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

最佳答案

您正在打印每隔一行并保存每隔一行并跳过每隔一行的开头。您在三个地方读取数据并以不同的方式使用它。一旦你使用 _br.read() 一个字符,它就不会再次读取它,因此它不会出现在该行中。

更好的方法是使用

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

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

关于Java bufferedreader 在读取行时有时会跳过第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10227720/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com