Wie kann ich mit der PrinterWriter-Klasse aus einer Textdatei die folgenden Ergebnisse erzielen?
Meine Anwendung hier fordert den Benutzer zur Eingabe einer Textdatei auf.mixed.txt was beinhaltet
12.2 Andrew 22 Simon Sophie 33.33 10 Fred 21.21 Hank Candice 12.2222
Als nächstes ist der Antrag zu stellenPrintWrite
zu allen textdateien nämlichresult.txt underrorlog.txt. Jede Zeile aus mixed.txt sollte mit einer Nummer beginnen, gefolgt von einem Namen. Bestimmte Zeilen können jedoch die umgekehrte Bedeutung enthalten, dh den Namen, gefolgt von einer Zahl. Diejenigen, die mit einer Zahl beginnen, werden zu a hinzugefügtsum
Variable und in die Datei result.txt geschrieben, während die Zeilen, die mit dem Namen zusammen mit der Nummer beginnen, in die Datei errorlog.txt geschrieben werden.
Daher lauten die Ergebnisse auf der MS-DOS-Konsole wie folgt:
Geben Sie result.txt ein
Gesamt: 65,41
Geben Sie errorlog.txt ein
Fehler in Zeile 3 - Sophie 33.33
Fehler in Zeile 6 - Candice 12.2222
Ok, hier ist mein Problem. Ich schaffte es nur bis zu dem Punkt, an dem ich alle Zahlen zu result.txt und Namen zu errorlog.txt-Dateien hinzugefügt habe und keine Ahnung habe, wie ich von da an fortfahren soll. Könnten Sie mir also einen Rat geben oder mir helfen, wie ich die gewünschten Ergebnisse erzielen kann?
Unten wird mein Code sein:
import java.util.*;
import java.io.*;
class FileReadingExercise3 {
public static void main(String[] args) throws FileNotFoundException
{
Scanner userInput = new Scanner(System.in);
Scanner fileInput = null;
String a = null;
int sum = 0;
do {
try
{
System.out.println("Please enter the name of a file or type QUIT to finish");
a = userInput.nextLine();
if (a.equals("QUIT"))
{
System.exit(0);
}
fileInput = new Scanner(new File(a));
}
catch (FileNotFoundException e)
{
System.out.println("Error " + a + " does not exist.");
}
} while (fileInput == null);
PrintWriter output = null;
PrintWriter output2 = null;
try
{
output = new PrintWriter(new File("result.txt")); //writes all double values to the file
output2 = new PrintWriter(new File("errorlog.txt")); //writes all string values to the file
}
catch (IOException g)
{
System.out.println("Error");
System.exit(0);
}
while (fileInput.hasNext())
{
if (fileInput.hasNextDouble())
{
double num = fileInput.nextDouble();
String str = Double.toString(num);
output.println(str);
} else
{
output2.println(fileInput.next());
fileInput.next();
}
}
fileInput.close();
output.close();
output2.close();
}
}
Dies ist der Screenshot der mixed.txt-Datei: