Ich möchte ein Benutzer in der Lage sein, mehrzeiligen Text in die Konsole zu kopieren und einzufügen und dann in einer bestimmten Textdatei (in diesem Fall "weather.text") zu speichern in einem Datenordner innerhalb des gleichen Pakets). Ich habe für ein paar Stunden an dieser einfachen Aufgabe gearbeitet und die Lösung entzieht sich mir. Ich bin neu in Java, also entschuldige ich mich im Voraus.Benutzereingabe in eine Textdatei in Java
Diese statische Funktion wird von der Hauptstartprogrammklasse aufgerufen.
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
import java.util.Scanner;
public static void writeFile()
{
//set up for the user input
Reader r = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(r);
String str = null;
try {
//prompt the user to input data
System.out.println("Type or paste your data and hit Ctrl + z");
str = br.readLine();
//save the user input data to text file
PrintWriter writer = new PrintWriter("weather.txt", "UTF-8");
writer.print(str);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
derzeit habe ich 2 Probleme.
1) Der obige Code scheint nur die erste in die Konsole eingefügte Zeile in der Konsole zu speichern.
2) Die zu speichernde Textdatei befindet sich im globalen Projektordner und nicht im angegebenen Datenunterordner.
Jede Hilfe oder Vorschläge sind willkommen. Vielen Dank.
Ist nicht Strg + z nur "rückgängig machen"? Oder bringt es irgendwie alles auf eine Linie? 'br.readLine()' liest nur eine einzelne Zeile. – 4castle
@ 4castle http://superuser.com/questions/476873/what-is-effect-of-ctrl-z-on-a-unix-linux-application – Murillio4
mein Professor sagte, ctr + z zu verwenden, um den Scanner zu erhalten Lesen Sie die Daten in die Datei, während Sie die Textdatei erstellen ". Ich würde eher eine grafische Oberfläche bevorzugen, aber wir sind noch nicht so weit fortgeschritten in unserem Lehrplan. Für den Moment hämmere ich meinen Kopf gegen die Befehlszeile für Übung. –