Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将CSV日期转换为arraylist_Java_Java_Csv_Arraylist - Fatal编程技术网

将CSV日期转换为arraylist_Java

将CSV日期转换为arraylist_Java,java,csv,arraylist,Java,Csv,Arraylist,我正在尝试使用ArrayList单独保存数据。 但是,在将一个数据保存到数组中后,它跳过一行,然后保存数据。请帮我解决这个问题 private void readCSVFile(String tickerCode, File file) { System.out.println("Reading file " + tickerCode); System.out.println(file.getPath()); try { ArrayList<List

我正在尝试使用ArrayList单独保存数据。 但是,在将一个数据保存到数组中后,它跳过一行,然后保存数据。请帮我解决这个问题

private void readCSVFile(String tickerCode, File file) {
    System.out.println("Reading file " + tickerCode);
    System.out.println(file.getPath());
    try {
        ArrayList<List<String>> line = new ArrayList<>();
        BufferedReader br = new BufferedReader(new FileReader(file));
        CSVReaderHeaderAware csvReader = new CSVReaderHeaderAware(br);
        int numLine = 0;
        String[] values;
        while ((values = csvReader.readNext()) != null) {
            ArrayList<String> data = new ArrayList<>();
            data.add(values[0]);
            data.add(values[1]);
            data.add(values[2]);
            data.add(values[3]);
            data.add(values[4]);
            data.add(values[5]);
            data.add(values[6]);
            line.add(data);

            if(numLine == 0){
                System.out.print("StartDate = "+ values[0]);
            }
            if((csvReader.readNext() == null)){
                System.out.println(" EndDate = " + values[0]);
            }
            ++numLine;
        }
private void readCSVFile(字符串tickerCode,文件){
System.out.println(“读取文件”+tickerCode);
System.out.println(file.getPath());
试一试{
ArrayList行=新的ArrayList();
BufferedReader br=新的BufferedReader(新文件读取器(文件));
csvreaderheaderware csvReader=新的csvreaderheaderware(br);
int numLine=0;
字符串[]值;
而((value=csvReader.readNext())!=null){
ArrayList数据=新的ArrayList();
数据。添加(值[0]);
数据。添加(值[1]);
数据。添加(值[2]);
数据。添加(值[3]);
数据。添加(值[4]);
数据。添加(值[5]);
数据。添加(值[6]);
行。添加(数据);
如果(numLine==0){
系统输出打印(“StartDate=“+值[0]);
}
if((csvReader.readNext()==null)){
System.out.println(“EndDate=“+value[0]);
}
++努姆林;
}

如注释中所述,您不能在循环内使用
csvReader.readNext()
检查下一个元素是否为
null
,因为它将实际读取下一行。因此,您可以做的是将最后处理的行的日期保留在变量中,然后在while循环完成后将其打印为EndDate

ArrayList<List<String>> line = new ArrayList<>();
BufferedReader br = new BufferedReader(new FileReader(file));
CSVReaderHeaderAware csvReader = new CSVReaderHeaderAware(br);
int numLine = 0;
String[] values;
String endDate = null;
while ((values = csvReader.readNext()) != null) {
    ArrayList<String> data = new ArrayList<>();
    data.add(values[0]);
    data.add(values[1]);
    data.add(values[2]);
    data.add(values[3]);
    data.add(values[4]);
    data.add(values[5]);
    data.add(values[6]);
    line.add(data);

    if(numLine == 0){
        System.out.print("StartDate = "+ values[0]);
    }
    endDate = values[0];
    ++numLine;
}

if (endDate != null) { // Need to check null in case your CSV didn't have any rows
    System.out.println(" EndDate = " + endDate);
}
ArrayList line=new ArrayList();
BufferedReader br=新的BufferedReader(新文件读取器(文件));
csvreaderheaderware csvReader=新的csvreaderheaderware(br);
int numLine=0;
字符串[]值;
字符串endDate=null;
而((value=csvReader.readNext())!=null){
ArrayList数据=新的ArrayList();
数据。添加(值[0]);
数据。添加(值[1]);
数据。添加(值[2]);
数据。添加(值[3]);
数据。添加(值[4]);
数据。添加(值[5]);
数据。添加(值[6]);
行。添加(数据);
如果(numLine==0){
系统输出打印(“StartDate=“+值[0]);
}
endDate=值[0];
++努姆林;
}
如果(endDate!=null){//需要检查null,以防CSV没有任何行
System.out.println(“EndDate=“+EndDate”);
}

如果((csvReader.readNext()==null)){-
readNext
确实读取了下一个,我认为您不应该这样做。