Speichern in einer .txt Datei

  • Themenstarter Themenstarter mannni10
  • Beginndatum Beginndatum
M

mannni10

Gast
Guten Tag,

ich hab folgendes Problem für das ich keine Lösung gefunden habe:

ich habe ein Programm geschrieben dass einen String einließt und ihn mit der aktuellen Uhrzeit in ein txt Dokument speichert.
Gibt man einen weiteren String ein speichert er ihn erneut mit der Uhrzeit dazu.
Mein Problem ist jetzt:
Gebe ich einen Satz ein der Leerzeichen erhält, speichert er jedes Wort in einer neuen Zeile des txt Dokuments.
Hat jemand eine Lösung dafür?

Hier mein Code:

Java:
package Berichtsheft;

public class Speichern {

	FileWriter writer;
	File folder;
	File file;

	public void schreiben(String eingabe, String date, String time) {

		String temp = System.getProperty("user.home");

		folder = new File(temp + "\\Desktop\\Berichtshefte");

		if (!folder.exists()) {
			folder.mkdir();
		}
		if (folder.exists()) {

		}

		file = new File(temp + "\\Desktop\\Berichtshefte\\" + date + ".txt");
		try {

			writer = new FileWriter(file, true);

			writer.write(date + " - " + time + " : " + eingabe);

			writer.write(System.getProperty("line.separator"));

			writer.flush();

			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

und

Java:
public class Test {

	public static Speichern save = new Speichern();
	public static String eingabe = "-";
	public static Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		System.out.println("Geben sie 'exit' ein um das Programm zu beenden.");

		while (!eingabe.equals("exit")) {
			eingabe = sc.next();
			if (eingabe.equalsIgnoreCase("exit")) {
				break;
			}
			String date = getDate();
			String time = getTime();
			save.schreiben(eingabe, date, time);
		}
	}

	private static String getDate() {
		Calendar cal = Calendar.getInstance();
		int day = cal.get(Calendar.DATE);
		int month = cal.get(Calendar.MONTH) + 1;
		int year = cal.get(Calendar.YEAR);
		return "" + day + "." + month + "." + year;
	}

	@SuppressWarnings("deprecation")
	public static String getTime() {
		Date date = new Date();
		return "" + date.getHours() + ":" + date.getMinutes() + ":"
				+ date.getSeconds();
	}
}
 
eingabe = sc.next();
liefert das nächste wort, das heit, wenn du "eins zwei" eingibst, wir deine while schleife zweimal durchlaufen..
benutze einfach
eingabe = sc.nextLine();
 
dein Problem hat absolut nichts mit dem Speichern in der Datei zu tun,
kein Eigeninteresse so etwas zu prüfen?
mit einem simplen System.out.println(..); könntest du feststellen, dass jedes Wort einzeln an die Methode übergeben wird,

Problem ist die main-Methode, dort brauchst du
eingabe = sc.nextLine();
statt
eingabe = sc.next();
 
Vielen Danke für die Antworten, das wusste ich nicht.
Ich wusste schon was das Problem ist nach längerem debuggen.
Ich wusste nur nicht wie ich es beheben soll.

Danke und gruß
 

Zurück
Oben