gpt4 book ai didi

java - 使用 Java 读取 CSV 文件 (SE8)

转载 作者:行者123 更新时间:2023-12-02 10:55:30 26 4
gpt4 key购买 nike

我想使用以下代码从 csv 文件内的数据集中提取数据:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadingCSVFiles {

public static void main(String[] args) {

File dataFile = new File("URL\Countries.csv");
try {
@SuppressWarnings("resource")
Scanner input = new Scanner(dataFile);
input.useDelimiter(",|\\s");
String column1 = input.next();
String column2 = input.next();
System.out.printf("%-11s%12s%n", column1, column2);
while (input.hasNext()) {
String Country = input.next();
int Population = input.nextInt();
System.out.printf("%-11s%, 12d%n", Country, Population);
}

} catch (FileNotFoundException e) {
System.out.println(e);
}
}
}

不幸的是,我只得到第一行作为输出:

Country           Population

然后我收到以下错误:

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor (Unknown Source)
at ...

这是 csv.文件:

Country,Population
Argentina,41343201
Brazil,201103330
Chile,16746491
Columbia,47790000
Paraguay,6375830
Peru,29907003
Venezuela,27223228

任何帮助将不胜感激。

最佳答案

您将分隔符设置为 \s,它仅匹配一个空白字符。

如果您的文件结尾由两个字符分隔(Windows 系统上的默认设置),例如\r\n,它只会消耗第一个字符 (\r),这意味着下一个标记将是一个空字符串(读入 Country >),其后的标记将是下一个国家/地区名称,不能以 int 形式读取。

我建议逐行读取您的输入,然后使用 , 分割这些行。

关于java - 使用 Java 读取 CSV 文件 (SE8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51789691/

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