Java 使用OpenCSV从CSV中提取特定数字

Java 使用OpenCSV从CSV中提取特定数字,java,csv,opencsv,aiml,Java,Csv,Opencsv,Aiml,我有带有标题和特定数字的CSV文件。我需要单独提取这些数字以创建AIM XML文件,但这并不重要。我很难根据标题提取数字。我试过各种方法,但都没能奏效。当我尝试运行这段代码时(下面只是一个示例),它似乎永远不会终止。我对Java或OpenCSV不是很有经验,所以请原谅你即将看到的混乱。(现在也是凌晨2点,我的大脑出现了故障) import java.io.FileNotFoundException; 导入java.io.FileReader; 导入java.io.IOException; 导入e

我有带有标题和特定数字的CSV文件。我需要单独提取这些数字以创建AIM XML文件,但这并不重要。我很难根据标题提取数字。我试过各种方法,但都没能奏效。当我尝试运行这段代码时(下面只是一个示例),它似乎永远不会终止。我对Java或OpenCSV不是很有经验,所以请原谅你即将看到的混乱。(现在也是凌晨2点,我的大脑出现了故障)

import java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
导入edu.stanford.hakan.aim3api.base.AimException;
导入edu.stanford.hakan.aim3api.base.ImageAnnotation;
导入edu.stanford.hakan.aim3api.usage.AnnotationBuilder;
导入au.com.bytecode.opencsv.CSVReader;
公共类CreateAIMFile{
公共静态void main(字符串[]args)引发IOException、FileNotFoundException、AimException
{
ImageAnnotation Peseranotation1=新的ImageAnnotation();
字符串csvFilename=“C:/Users/Daniela/Documents/ISPY/205_4493_MR1_ACRIN_6657/E25008/peser_data.csv”;//插入文件名和位置
CSVReader CSVReader=new CSVReader(new FileReader(csvFilename));
字符串[]nextLine=csvReader.readNext();
//开始

对于(int i=0;i,通常通过实例化CSVReader对象打开CSV文件一次,然后循环调用readNext文件


在代码中,您正在循环中重新实例化CSVReader,而不是在循环中调用readNext。

我认为您混淆了CSVReader.readNext();和CSVReader.readAll()

试试这个(不编译!):

String headerLine=csvReader.readNext();
List numbersInHeader=new ArrayList();
对于(int i=0;i
希望这有帮助

String headerLine = csvReader.readNext();

List numbersInHeader = new ArrayList();
for(int i = 0 ; i < headerLine.length ; i++){
    if(headerLine[i].equals("YouHeaderNameHere") || headerLine[i].equals("OtherNumberHeader")){
        numberInHeader.add(i);
    } 
}
String line[] = null;
while((line = csvReader.readNext()) != null){
    for(int i = 0 ; i < line.length ; i++){
        if(numbersInHeader.contains(i)){ 
            // This is a number do you work here

        }

    }
}