Javafx: чтение из файла и разделение результата методом .split - PullRequest
0 голосов
/ 13 января 2020

Я хочу, прочитав данные файла, чтобы разделить результаты, основанные на .split (","), другими словами, для этого конкретного примера. Я хочу иметь 2 индекса, каждый из которых содержит до 5 данных, которые я бы также как доступ к методу. [0] и. [1].

Файл с данными.

data

Метод чтения файлов.

public void fileReading(ActionEvent event) throws IOException {
    File file = new File("src/DateSpeicher/datenSpeicher.txt"); 
    BufferedReader br = new BufferedReader(new FileReader(file)); 
    String st; 
    while ((st = br.readLine()) != null) { 
        System.out.println(st); 
    }
}

Однако этот метод работает очень хорошо, мне интересно, как я могу разделить эти два на два массива Index или String, которые могут быть оба доступ через соответствующие индексы [0], [1]. Для первых данных в массиве фирмы - 655464 [0] [0] для последних во втором массиве [1] [4].

Мой подход: 1. Создание ArrayList для каждого, 2. Добавление данных до ","

Issue : вышеуказанный подход работает, но вы не можете делать такие вещи, как array1 [0] - он выдает ошибку, однако метод индекса имеет решающее значение.

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 13 января 2020
Path path = Paths.get("src/DateSpeicher/datenSpeicher.txt"); // Or:
Path path = Paths.get(new URL("/DateSpeicher/datenSpeicher.txt").toURI());

Либо две строки, а затем обрабатывать их:

String content = new String(Files.readAllBytes(path), Charset.defaultCharset());
String[] data = content.split(",\\R");

или список списков:

List<String> lines = Files.readAllLines(path, Charset.defaultCharset());

// Result:
List<List<String>> lists = new ArrayList<>();

List<String> newList = null;
boolean addNewList = true;
for (int i = 0; i < lines.size(); ++i) {
    if (addNewList) {
        newList = new ArrayList<>();
        lists.add(newList);
        addNewList = false;
    }
    String line = lines.get(i);
    if (line.endsWith(",")) {
        line = line.substring(0, line.length() - 1);
        addNewList = true;
    }
    newList.add(line);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...