Как я могу прочитать из файла CSV в 2 ArrayLists в зависимости от типа данных, которые я получил в файле? - PullRequest
1 голос
/ 01 апреля 2019

Я новичок в Java, и я понятия не имею, как читать из CSV-файла в 2 ArrayLists, возможно, с использованием токенов и. Тип. (List-> Array) В зависимости от токена мы добавляем в тот или иной список.

Обновление: формат файла фиксирован. Это формат:

Эндрю, Ник, 11, ручка, Apple, рюкзак, 5500.0,570.0,4700.0

Ex:

Название, описание, 55.0,100.0

Имя в массиве строк.

55,0 в ArrayList двойного;

Это мой код, я в первую очередь пытаюсь понять основы.

public class CSVRead {
    public static void main(String[] arg) throws Exception {

          BufferedReader CSVFile = new BufferedReader(new FileReader("Auto2.csv"));

          String data= CSVFile.readLine(); 

          while (data != null){
           String[] dataArray = data.split(",");
           for (String item:dataArray) { 
              System.out.print(item + "\t"); 
           }
           System.out.println(); 
           data = CSVFile.readLine(); 
          }

          CSVFile.close();


          System.out.println();

         } 
        }

1 Ответ

0 голосов
/ 01 апреля 2019

Вы можете попробовать следующий код. В качестве примера я взял индекс ноль в качестве поля имени и индекс шесть в качестве необходимого двойного значения. В соответствии с форматом вы можете получить фактический индекс поля и добавить его в свои списки.

public void loadData() throws IOException {
    List<String> namesList = new ArrayList<>();
    List<Double> someDoubleList = new ArrayList<>();

    BufferedReader CSVFile = new BufferedReader(new FileReader("/Users/leon/Desktop/Auto2.csv"));
    String data = CSVFile.readLine();

    while (data != null) {
        String[] dataArray = data.split(",");
        // Add the names to string list as the index of it is zero
        namesList.add(dataArray[0]);

        // Add the double value to double list as the index of it is six.
        someDoubleList.add(Double.parseDouble(dataArray[6]));
        data = CSVFile.readLine();
    }

    CSVFile.close();
}
...