Предполагается, что ваша цель - иметь два списка / массива, один из которых содержит значения первого столбца значений в файле, а другой - значения второго столбца.
Поскольку вы знаете каждую строку содержит два столбца, рассматривайте их как таковые, вместо использования l oop в результате разделения. Смотрите мои комментарии и изменения в приведенном ниже коде.
File file = new File(txt);
if (!file.canRead() || !file.isFile()) // Prüfen ob Datei gelesen werden kann
System.exit(0);
// use arraylists because you don't know how many lines are in the file
ArrayList<Integer> column1 = new ArrayList<>();
ArrayList<Integer> column2 = new ArrayList<>();
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(txt));
String zeile = null;
int zeilennummer = 0;
// Es wird solange gelesen wie Zeilen vorhanden sind
while ((zeile = in.readLine()) != null) {
teilen = zeile.split(" "); // Zeile wird an Leerzeichen gesplittet
zeilennummer++;
// this is replaced by the two arraylists
//preis = new int[anzahlTanstellen];
// alle Entfernungen und Preise der Tankstellen
if (zeilennummer > 5) {
if(teilen.length != 2) {
// handle this error. skip the line maybe? ignore? throw an exception?
} else {
// store the first value in column1 and the second in column2
column1.add(Integer.parseInt(teilen[0]));
column2.add(Integer.parseInt(teilen[1]));
}
}
}
} catch (IOException e) {
// Bei Fehlern wird eine IO-Exception geworfen
e.printStackTrace();
} finally {
if (in != null)
try {
in.close();
} catch (IOException e) {
}
}
// now do whatever you want with your two columns