Importieren von Textdatei Java Frage
-
13-09-2019 - |
Frage
Ich beschloss, einen Währungsumrechner in Java zu erstellen, und es hat, so dass es die Umrechnungswerte aus einer Textdatei ziehen würde (für die einfache Editierbarkeit zu ermöglichen, da diese Werte ständig ändern). Ich habe es geschafft, es zu tun, indem Sie die Scanner-Klasse und alle Werte in einer Arraylist setzen.
Jetzt frage ich mich, ob es einen Weg gibt, um Kommentare zu der Textdatei für den Benutzer hinzuzufügen, zu lesen, die Scanner ignoriert. "//" scheint nicht zu funktionieren.
Danke
Lösung
Die beste Weg wäre, um die Datei Zeile für Zeile zu lesen, mit java.io.BufferedReader
und scannen jede Zeile für Kommentare a href mit <=" http://java.sun.com/javase/6/docs/api/java/lang/String.html#startsWith%28java. lang.String% 29" rel = "nofollow noreferrer"> String#startsWith()
wo in Sie sucht nach "//"
.
Aber haben Sie darüber nachgedacht, mit einem Properties-Datei und verwalten sie mit dem java.util.Properties
API? Auf diese Weise können Sie aus einer vorgefertigten Spezifikation und APIs profitieren und Sie können # als Beginn der Kommentarzeile verwenden. Siehe auch das Tutorial bei sun.com .
Andere Tipps
Scanner ignorieren nicht nichts, müssen Sie die Kommentare aus Ihren Daten entfernen, nachdem Sie es in gelesen haben.
Ja, während ((GEGENWÄRTIGE_ZEILE = bufferedReader.readLine ())! = Null) möglicherweise ist die einfachste, dann notwendigen Tests durchführen. currentLine.split (regex) ist auch sehr praktisch, eine Linie in einem Array von Werten unter Verwendung eines Trennzeichens für die Umwandlung.
Mit Java nio, Sie so etwas tun könnte. Angenommen, Sie mögen Zeilen ignorieren, die mit „//“ beginnen und am Ende mit einem Arraylist.
List<String> dataList;
Path path = FileSystems.getDefault().getPath(".", "data.txt");
dataList = Files.lines(path)
.filter(line -> !(line.startsWith("//")))
.collect(Collectors.toCollection(ArrayList::new));