Java 如何将csv文件中的多行输入阵列?

Java 如何将csv文件中的多行输入阵列?,java,arrays,Java,Arrays,我试图创建一个数组,在其中我要将CSV文件中的值存储到该数组中 我的代码: public static Trip[] readExistingFile(File inp) throws FileNotFoundException { Scanner scan = new Scanner(inp); Trip[] trip_array = new Trip[5]; //while loop to input file while

我试图创建一个数组,在其中我要将CSV文件中的值存储到该数组中

我的代码:

public static Trip[] readExistingFile(File inp) throws FileNotFoundException {
        Scanner scan = new Scanner(inp);
        Trip[] trip_array = new Trip[5];

        //while loop to input file 

        while (scan.hasNextLine()) {
            String line = scan.nextLine();
            //separating values from csv
            String[] values = line.split(",");
            String mode = values[0];
            String origin = values[1];
            String destination = values[2];
            double duration = Double.parseDouble(values[3]);

            for (int i = 0; i < trip_array.length; i++) {

                if (mode.equals("Flight")) {

                    boolean meals = Boolean.parseBoolean(values[4]);
                    trip_array[i] = new Flight(duration, origin, destination, meals);
                    
                }
    
                if (mode.equals("Drive")) {
    
                    double gog = Double.parseDouble(values[4]);
                    trip_array[i] = new Drive(duration, origin, destination, gog);
                    
                }
    
                if(mode.equals("Train")){
    
                    String[] stops = new String[values.length-4];
                    for (int k = 4; k < values.length; k++) {
                        
                        for (int j = 0; j < stops.length; j++) {
    
                            stops[j] = values[k];
                            
                        }
    
                    }
    
                    trip_array[i] = new Train(duration, origin, destination, stops);
                }
                
            }
publicstatictrip[]readExistingFile(File inp)抛出FileNotFoundException{
扫描仪扫描=新扫描仪(inp);
Trip[]Trip_数组=新Trip[5];
//同时循环到输入文件
while(scan.hasNextLine()){
String line=scan.nextLine();
//从csv中分离值
字符串[]值=行。拆分(“,”);
字符串模式=值[0];
字符串原点=值[1];
字符串目的地=值[2];
double duration=double.parseDouble(值[3]);
对于(int i=0;i
在运行此代码时,只会多次添加一行。如何添加其他行


提前感谢

为什么要将for循环嵌套在while循环中?您可能应该使用其中一个,并在循环中创建新对象。您可以使用现有的CSV库吗?删除for循环,并包括检查通过trip_数组的距离,以便在遇到以下情况时不会出现越界异常:在输入文件中输入超过5行。