gpt4 book ai didi

java - 为什么 Scanner 每隔一行读取 CSV 文件? java

转载 作者:行者123 更新时间:2023-11-30 08:02:51 26 4
gpt4 key购买 nike

我正在读取一个 CSV 文件并将每个分隔元素放入一个二维数组中。代码如下所示:

public DataProcess(String filename, String[][] contents, int n) {//n is 6 for contents, 5 for fiveMinContents
Scanner fileReader = null;
try {
fileReader = new Scanner(new File(filename));
} catch (FileNotFoundException ex) {
System.out.println(ex + " FILE NOT FOUND ");
}
fileReader.useDelimiter(",");
int rowIndex = 0;
while (fileReader.hasNext()) {
for (int j = 0; j < n; j++) {
contents[rowIndex][j] = fileReader.next();
System.out.println("At (" + rowIndex +", "+j+"): " +
contents[rowIndex][j]);
}
rowIndex++;
fileReader.nextLine();
}
}

我不确定为什么它会读取此特定 CSV 文件的每一行,因为这是以这种方式读取的文件 2/2。第一个读起来很好,但现在这个跳过了每一行。为什么它适用于一个而不适用于另一个?我在 Eclipse 的最新更新上运行它。

我还查看了this回答但没有帮助。

最佳答案

因为循环的最后一行读取了一行并将其丢弃。你需要这样的东西,

while (fileReader.hasNextLine()) { 
String line = fileReader.nextLine();
contents[rowIndex] = fileReader.split(",\\s*");
System.out.println("At (" + rowIndex + "): "
+ Arrays.toString(contents[rowIndex]));
rowIndex++;
}

您也可以通过一次调用打印多维数组

System.out.println(Arrays.deepToString(contents));

关于java - 为什么 Scanner 每隔一行读取 CSV 文件? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36564422/

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