Необходимо хранить всю информацию из файла CSV в массивах - PullRequest
0 голосов
/ 25 апреля 2020

Я новичок в java и пытаюсь создать программу, которая частично требует, чтобы вся информация из CSV-файлов была сохранена в массивах. Файл CSV содержит только строки и имеет 23 строки и 3 столбца. Моя проблема в том, что я не могу найти способ хранения всего, так как массив хранит информацию только из последней строки, перезаписывая все остальные строки.

'' '

 public static void main(String[] args) throws FileNotFoundException{ 

    String[] StringPart=null;
    File csvfile = new File("FileExample");
    Scanner dodo = new Scanner(csvfile);

    while(dodo.hasNextLine()){
        String x = dodo.nextLine();
        StringPart= x.split(",");
        }

    System.out.println(StringPart[0]+StringPart[1]+StringPart[2]);

' ' «

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Поскольку у вас есть столбцы и строки, 2d-массив является подходящим представлением. 2d массивы являются массивом массивов. Внешний массив содержит каждую строку, внутренние массивы содержат каждое значение.

Служебные классы Files and Paths относятся к java.nio.file.*.

public static void main(String[] args) throws Exception {
    // read file and store contents as String
    File file = new File("csv_example.txt");
    byte[] fileData = Files.readAllBytes(Paths.get(file.getAbsolutePath()));
    String fileContent = new String(fileData);

    String[][] values; // declare values
    String[] lines = fileContent.split("\n"); // split files in to lines
    values = new String[lines.length][]; // make values large enough to hold all lines

    // for each line, add its values to an array in the 2d values array
    for(int i = 0; i < lines.length; i++)
    {
      values[i] = lines[i].split(",");
    }
}
0 голосов
/ 25 апреля 2020

Вы ошибаетесь в этой строке кода StringPart= x.split(",");. Здесь вы снова и снова присваиваете новые значения StringPart. Попробуйте добавить значения в массив строк StringPart.

...