как читать csv файл без указания c номера столбца в java и без изменения кода после каждого дополнительного столбца - PullRequest
0 голосов
/ 08 июля 2020

Я попытался написать код для чтения файла csv и сохранил данные в массиве объектов, но после каждого изменения количества столбцов я должен читать другой столбец и изменять код. потому что я хочу использовать один и тот же класс для разных файлов csv с разным количеством столбцов без необходимости изменять код для каждого файла.

    public class Read_CSV {
        public static Object[][]readCSVdata(String csvFilePath){
     //String csvFilePath = null;
     ArrayList<Object[]>dataList = new ArrayList <Object[]>();
        String line = "";
          String cvsSplitBy = ",";
        try (BufferedReader br = new BufferedReader(new FileReader(csvFilePath))) {

        int iteration = 0;
        
        while ((line = br.readLine()) != null) {
            if(iteration == 0) {
                iteration++;  
                continue;
            }
            String[] arri = line.split(cvsSplitBy);
            Object[]arri1= {arri[0] , arri[1],arri[2] };
              //here after every additional column I should add another cell
            dataList.add(arri1);
        }      
        br.close();
        return dataList.toArray(new Object[dataList.size()][]);

    } catch (IOException e) {
        e.printStackTrace();
        return null;

    }

}

}

1 Ответ

1 голос
/ 08 июля 2020

Вы можете использовать массив строк после разделения каждой строки:

while ((line = br.readLine()) != null) {
    if(iteration == 0) {
        iteration++;  
        continue;
    }
    String[] arri = line.split(cvsSplitBy);
    
    dataList.add(arri);
} 

Тогда dataList будет содержать массивы строк.

Или у вас есть другие требования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...