“main”java.lang.ArrayIndexOutofBounds异常:3
我想提取CSV文件的一个特定单列值。因此,我使用了CSV文件的数据集,其实例数为45211,属性数为17。 我试过这个代码,但它给我的错误是这样的。。 main java.lang.ArrayIndexOutOfBoundsException:3 请帮助我“main”java.lang.ArrayIndexOutofBounds异常:3,java,csv,stream,filestream,opencsv,Java,Csv,Stream,Filestream,Opencsv,我想提取CSV文件的一个特定单列值。因此,我使用了CSV文件的数据集,其实例数为45211,属性数为17。 我试过这个代码,但它给我的错误是这样的。。 main java.lang.ArrayIndexOutOfBoundsException:3 请帮助我 import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import java.util.loggin
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Main {
public static void main(String[] args) {
// TODO code application logic here
String filename ="bank-full.csv";
File file= new File(filename);
try {
Scanner inputStream = new Scanner(file);
inputStream.next();
while(inputStream.hasNext())
{
String data= inputStream.next();
String[] values = data.split(",");
// double balance= Double.parseDouble(values[2]);
System.out.println(values[3]);
}
inputStream.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
我假设你想一次读一行:
Scanner inputStream = new Scanner(file);
while(inputStream.hasNextLine())
{
String data = inputStream.nextLine();
String[] values = data.split(",");
System.out.println(values[3]); // now, this line is safe only if you are
// sure that each row would have at least 3 commas
}
1您确定文件中的delimeter是逗号吗 2文件中是否有空列?如果存在,请使用以下方法进行拆分:
String[] values = data.split(",", -1);
在引发异常的行上放置断点。在调试模式下运行该类,并观察访问引发异常的变量的值。在本例中是数组。您是否调试并检查了“值”的实际值?是否检查是否使用了正确的分隔符?试图迭代数组以检查值的数量?感谢它的所有帮助我…我完成了…没有命名值…你能在失败的文件中发布行吗?请尝试打印字符串data=inputStream.next,并为我们提供最后一行打印内容。