【发布时间】:2021-06-14 19:29:07
【问题描述】:
正如标题所说,我导入了一个 csv 文件,其中 3 列由逗号 (,) 分隔。 当我尝试单独打印每一列时,第一列打印没有问题。当我尝试第二列和第三列(索引 [1] 和 [2])时,它们按预期打印,但在退出之前我在程序结束时收到“ArrayIndexOutOfBoundsException”错误。这是为什么呢?
下面是代码:
public static void main(String[] args) throws IOException {
String path = "C:\\Users\\UserONE\\Downloads\\inSic1.csv";
String line = "";
BufferedReader br = new BufferedReader(new FileReader(path));
while ((line = br.readLine()) != null){
String value [] = line.split(",");
System.out.println(value[1]);
【问题讨论】:
-
也许你的 csv 结尾有一个“空行”?
-
好。不过,在尝试通过固定索引访问数组之前,您应该尝试通过检查数组大小(或字符串大小)来避免这些问题。
-
作为替代方案,您可以
readAllLines(Path path)并收到List<String>(使用java.nio)。然后您可以在 io 处理之后调查此列表。您可以拆分该列表中的每个项目并检查其大小,如@maloomeister 所述。