Ich versuche, Informationen aus einer externen Datei einzulesen und auf dem Bildschirm verschiedene Statistiken über sie zu drucken. Ich war in der Lage, die Anzahl der Zeilen und Absätze erfolgreich aufzuspüren, geriet jedoch in Schwierigkeiten, die Gesamtanzahl an Wörtern zu finden.Versuchen, die Anzahl der Wörter aus der Eingabedatei zu finden
Ich bemerkte, dass, wenn ich die zweite While-Schleife nehme und es zuerst gebe, gibt es mir die richtige Anzahl von Wörtern, aber die falschen Zeilen und Absätze, aber wenn ich es so wie es jetzt läuft, gibt es mir die richtigen Zeilen und Absätze, aber die falschen Worte.
Ich würde Ihre Hilfe sehr schätzen, herauszufinden, warum das so ist. Vielen Dank!
int x = 0, words = 0, y = 0;
System.out.print("Name of the input file: ");
in = kbd.nextLine().toLowerCase();
System.out.println(" ");
// Set up connection to the input file
Scanner input = new Scanner(new FileReader(in));
// Set up connection to an output file
PrintWriter output = new PrintWriter(new FileOutputStream("datacopy.txt"));
int lineNum = 0;
while (input.hasNextLine()) {
String line;
line = input.nextLine();
if (line.length() == 0) {
x++;
}
output.println(line + "\n");
lineNum++;
}
while (input.hasNext()) {
String line = input.next();
words++;
}
System.out.println("Words: " + words);
System.out.println("Lines: " + lineNum);
System.out.println("Paragraphs " + --x);
System.out.println(" ");
System.out.println("Output file datacopy.txt created.");
Es funktionierte. Vielen Dank! – s24569
@ s24569 Diese Lösung funktioniert definitiv, aber sie liest die Datei zweimal durch. Dies verdoppelt den Arbeitsaufwand und macht es für große Dateien sehr ineffizient, besonders wenn sie sich auf entfernten Laufwerken befinden. – dasblinkenlight