Java-Fragen und Antworten vom PHP-Editor Banana. Heute besprechen wir, wie man Iteration in NetBeans implementiert und die nächste Zeile in der Text.txt-Datei auf der Ausgabekonsole ausgibt. Diese Frage beinhaltet die Fähigkeiten zum Lesen und Iterieren von Dateien, die durch eine vernünftige Codeimplementierung leicht erreicht werden können. Werfen wir einen Blick auf die konkreten Lösungen!
Ich versuche, meine Textkommentare aus einer Textdatei auszulesen, aber es scheint aufgrund einer nosuchelementException nicht möglich zu sein, zur nächsten Codezeile zu iterieren. Wie kann ich dieses Problem lösen?
Ich entschuldige mich im Voraus für meinen Mangel an Schreibetikette, da ich neu auf dieser Website bin. Aber trotzdem, hier ist mein Code:
public class Praktikum11_4 { private Scanner input; public void membukaFile() { try { input = new Scanner(new File("favouriteplace.txt")); } catch(FileNotFoundException e) { System.err.print("File yang anda cari" + "Tidak ditemukkan"); System.exit(1); } catch(IllegalStateException e) { System.err.print("Error membaca File"); } } public void membacaData() { try{ while(input.hasNext()) { for (int i = 1 ; i <= 7 ; i++ ) { // Scan the line String location = input.nextLine(); double rating = input.nextDouble(); System.out.printf(i+". " + "%s dengan rating %f\n", location, rating); } } }catch (NoSuchElementException e) { System.err.println("Element not found ERROR 101 "); } } public void menutupFile() { if (input != null) { input.close(); System.out.print("File berhasil untuk ditutup"); } } public static void main(String[] args) { } }
Dies ist die Datei, die ich zu durchlaufen und auf der Ausgabekonsole auszugeben versuche:
Datei bestehend aus Daten](https://i.stack.imgur.com/dj2kc.png)
Das ist die Ausgabe, die ich bekomme:
Element nicht gefunden, Fehler 101, Datei zum Verfassen angezeigt
Das ist also meine erwartete Ausgabe:
Erwartete Ausgabe](https://i.stack.imgur.com/ntkv4.png)
Die nosuchelementException tritt auf, weil Sie input.nextdouble() innerhalb der for-Schleife aufrufen, ohne zu prüfen, ob die Eingabe vorhanden ist file Es gibt den nächsten verfügbaren Double-Wert. Sie sollten prüfen, ob der nächste Double-Wert vorhanden ist, bevor Sie versuchen, ihn zu lesen. Unabhängig davon, ob eine Ausnahme auftritt oder nicht, sollte die Ausnahme korrekt behandelt und die Datei geschlossen werden.
public void readData() { try { int i = 1; while (input.hasNext()) { String location = input.nextLine(); if (input.hasNextDouble()) { double rating = input.nextDouble(); input.nextLine(); // Consume the newline character after the double System.out.printf("%d. %s with rating %.2f\n", i, location, rating); i++; } else { System.err.println("Invalid rating format for location: " + location); input.nextLine(); // Consume the entire line to move to the next line } } } catch (NoSuchElementException e) { System.err.println("Element not found ERROR 101"); } }
Stellen Sie sicher, dass Sie openfile() aufrufen, um die Datei zu öffnen, bevor Sie readdata() aufrufen, und closefile() aufrufen, um die Datei zu schließen, wenn Sie fertig sind. Vergessen Sie außerdem nicht, die Hauptmethode zum Ausführen des Programms hinzuzufügen.
Das obige ist der detaillierte Inhalt vonWie iteriere ich die nächste Zeile in Text.txt und drucke sie an die Ausgabekonsole in NetBeans?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!