Ich bin ein Neuling in Java. Ich möchte die Anzahl der Zeilen in einer Testdatei finden, damit ich sie für die Array-Größe verwenden kann. Was war mein erster Gedanke, eine Schleife zu erstellen und eine int-Variable zu aktualisieren. wie folgt:Wie bekomme ich die Anzahl der Zeilen aus einer Textdatei in Java?
Scanner file = new Scanner(new File("data.text"));
int n = 0;
while(file.hasNextLine()) {
file.nextLine();
n++;
}
int[] array = new int[n];
dies funktioniert nicht für mich, weil die Scanner-Datei am Ende der Textdatei ist. Ich kann die Textdatei nur lesen, wenn ich die ursprüngliche Datei schließe und ein neues Scannerobjekt erstelle. Gibt es eine bessere Möglichkeit, dies auszuführen?
Verwenden Sie anstelle eines Arrays eine ['List'] (https://docs.oracle.com/javase/8/docs/api/java/util/List.html). Oder starten Sie mit einer festen Array-Größe und "skalieren" Sie das Array bei Bedarf (erstellen Sie ein Array doppelter Größe, kopieren Sie den alten Inhalt in das neue Array). Das sind die Ideen, die mir in den Sinn kommen. Es ist unmöglich, einen "Scanner" zurückzuspulen. –
Turing85
Sie möchten die Datei nicht zweimal lesen, verwenden Sie also kein Array, und Sie möchten mit hoher Wahrscheinlichkeit gar nicht erst eine ganze Datei in den Speicher einlesen. Praktisch jede Textdatei kann Zeile für Zeile oder Zeichen für Zeichen bearbeitet werden. – EJP
Mögliches Duplikat von [Anzahl der Zeilen in einer Datei in Java] (http://stackoverflow.com/questions/453018/number-of-lines-in-a-file-in-java) –