Ich habe Probleme zu verstehen, wie Java den Scanner benutzt, um Zeilen aus einer Datei zu lesen, und hoffte, nach Tagen der Verwirrung Klarheit zu bekommen.Lesen einer Datei mit dem Scanner
Ich habe eine TXT-Datei mit einer Zeile, die einen Namen enthält und dann 5 verdoppelt. Ich versuche herauszufinden, wie ich jedem dieser Variablen eine Variable innerhalb einer Schleife zuweisen kann, damit ich mit den Daten arbeiten kann. Mein Ziel ist es, die Daten aus diesen Zeilen tatsächlich zu übernehmen und sie als Parameter an eine andere Validierungsmethode zu übergeben. Wenn es einen einfacheren Weg dafür gibt, bin ich ganz Ohr. Ich habe das Gefühl, dass ich keinen Weg finden kann, über jedes Ding innerhalb der nextLine, nur über die gesamte Linie hinweg, zu iterieren. Ich versuche, dies zu tun, ohne ein Array zu verwenden, hier ist das relevante Code-Snippet, das ich gerade habe.
Scanner inputFile = new Scanner(file);
while (inputFile.hasNext())
{
String line = "";
accumulator++;
Scanner split = new Scanner(inputFile.nextLine());
while (split.hasNext())
{
}
stockName = inputFile.next();
shares = inputFile.nextDouble();
purchasePrice = inputFile.nextDouble();
purchaseCommission = inputFile.nextDouble();
salesPrice = inputFile.nextDouble();
salesCommission = inputFile.nextDouble();
System.out.println(stockName);
System.out.println(shares);
System.out.println(purchasePrice);
System.out.println(purchaseCommission);
System.out.println(salesPrice);
System.out.println(salesCommission);
System.out.print(line);
System.out.println("");
// checkValidity(line);
}
Ich bin eine harte Zeit, zu fragen und zu artikulieren, was ich nicht weiß, so dass jeder und alle Hilfe wird sehr geschätzt ... Ich habe auf diesem buchstäblich für drei Tage zu arbeiten und ich bin an einer Gesamtwand.
EDIT:
Das Layout der Textdatei sieht wie folgt aus
DELL: Dell Inc
125 25.567 0.025 28.735 0.025
MSFT: Microsoft
34.1 -15.75 0.012 15.90 0.013
Die Datei ist tatsächlich so ausgelegt, dass der Name in einer Zeile ist und die nächste Zeile alle Daten, die ich brauche. Ich habe versucht, stockName zu split.nextLine() zu wechseln, aber dann wirft es einen Fehler über die nächste Zeile (shares) für NoSuchElementException. Irgendeine Idee warum? Sollte stockName nicht einfach die gesamte Zeile verbrauchen und dann automatisch zur nächsten Zeile wechseln? – Josh
@Josh nach deinem Kommentar bearbeitet – bsd