gpt4 book ai didi

java - 未从文件中正确读取值

转载 作者:行者123 更新时间:2023-12-01 07:11:20 25 4
gpt4 key购买 nike

我正在尝试从以逗号分隔的文件中读取 x,y 坐标。但是,元素没有正确添加到 ArrayList 中。我哪里出错了?

ArrayList<Double> xpointArrayList = new ArrayList<Double>();
ArrayList<Double> ypointArrayList = new ArrayList<Double>();
try {
BufferedReader input = new BufferedReader(new FileReader(args[0]));
String line;
while ((line = input.readLine()) != null) {
line = input.readLine();
String[] splitLine = line.split(",");

double xValue = Double.parseDouble(splitLine[0]);
double yValue = Double.parseDouble(splitLine[1]);

xpointArrayList.add(xValue);
ypointArrayList.add(yValue);
}
input.close();

} catch (IOException e) {

} catch (NullPointerException npe) {

}

double[] xpoints = new double[xpointArrayList.size()];
for (int i = 0; i < xpoints.length; i++) {
xpoints[i] = xpointArrayList.get(i);
}
double[] ypoints = new double[ypointArrayList.size()];
for (int i = 0; i < ypoints.length; i++) {
ypoints[i] = ypointArrayList.get(i);
}

当我对 xpoints 和 ypoints 数组执行 Array.toSring 调用时。它只有一个号码。例如在文件中:

1,2
3,4
0,5

xpoints 数组只有 3.0,ypoints 数组只有 4.0。哪里出了问题?

最佳答案

while ((line = input.readLine()) != null) {
line = input.readLine();

你只是读了一行,丢弃它,然后读另一行。

冲洗,重复(因为它是一个循环)。

将来,你真的应该考虑使用调试器。您可以在代码执行时单步执行代码并准确查看发生了什么。学习使用它将是无价的。

编辑添加:正如 GregHaskins 指出的下面的评论一样,您还通过捕获 NullPointerException 而不对其采取行动来掩盖问题。在循环的第二次迭代中,第二次调用 readLine() 时,line 将为 null,因为文件中已没有任何内容。然后,对 split() 的调用会抛出一个 NullPointerException,您可以捕获该异常......然后默默地忽略它。

关于java - 未从文件中正确读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13737267/

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