Absatz in txt Dokument mit Append

coinboing

Mitglied
Hallo alle zusammen,

ich habe in der Schule seit kurzer Zeit einen Java-Kurs und wollte das erlernte etwas vertiefen und bastle nun bei mir zuhause etwas rum.

Aus langeweile wollte ich für mich einen kleinen Ernährungsrechner bauen, weil ich ich mich zum einen gern damit beschäftige (ich liebe Essen 😛 ) zum anderen dies ein netter weg ist um eben erlerntes zu üben. Jedoch sitze ich gerade vor dem Problem das mein neu ergänzter Text nicht in neuen Zeilen hinzugefügt wird.

Ziel von mir ist es, mit jeder neuen Abfrage eine Zeile in der "daten.txt" zu erzeugen. Es klappt alles, bis eben auf die Sache mit der neuen Zeile.

Java:
package naehrwertrechner;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import javax.swing.JOptionPane;
;

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import javax.swing.JOptionPane;



public class eingaben {

    public static void main(String[] args) throws IOException {

        /*
         Fragen Sie den Anwender der Nahrung und dessen Nährwerte ab.
         Die Nährwerte sollen in Eiweiß, Fett, Kohlehydrate und
         gesamt Kalorien eingegeben werden.
         */
        Path datenDatei = Paths.get(System.getProperty("user.home"))
                .resolve("Documents").resolve("NaehrwertDaten")
                .resolve("daten.txt");

        System.out.println(datenDatei);

        String eingabeNahrung, eingabeEiweiss, eingabeFett, eingabeCarbs,
                eingabeKalorien, zeileFertig;

        eingabeNahrung = JOptionPane.showInputDialog("Bitte Lebensmittel"
                + "eingeben z.B. Tomaten");
        eingabeEiweiss = JOptionPane.showInputDialog("Eiweiss:");
        eingabeFett = JOptionPane.showInputDialog("Fett:");
        eingabeCarbs = JOptionPane.showInputDialog("Kohlehydrate");
        eingabeKalorien = JOptionPane.showInputDialog("Gesamt Kalorien");

        zeileFertig = eingabeNahrung + "," + eingabeEiweiss + "," + eingabeFett
                + "," + eingabeCarbs + "," + eingabeKalorien + "\n";

        if (Files.exists(datenDatei)) {
            Files.write(datenDatei, zeileFertig.getBytes("UTF-8"),
                    StandardOpenOption.APPEND);
        } else {
            Files.write(datenDatei, zeileFertig.getBytes("UTF-8"));
        }

    }
}

ich hoffe der Post enhält alle infos die nötig sind.

danke für jede hilfe!

Grüße
coin
 

erstma danke für die blitz-antwort! 🙂

funktioniert aber leider nicht, in Zeile 44, wo ich eben die "bausteine" zusammensetze und einen neuen String in reie mit allen werte erstelle, habe ich am ende \n drinne, mit \n\r is auch kein unterschied.

der witz an der sache ist, das der Absatz im Dokument eigentlich drinne ist, nur irgendwie diese nicht zeilenweise hinzugefügt werden.
 
versuch's mal damit:

Java:
try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("deintextfile.txt", true)))) {
    out.println("the text\n\r"+"dein zweiter text");
}catch (IOException e) {
    //exception handling left as an exercise for the reader
}

Klappt's nun immer noch nicht?
 
Zuletzt bearbeitet:
versuch's mal damit:

Java:
try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("deintextfile.txt", true)))) {
    out.println("the text\n\r"+"dein zweiter text");
}catch (IOException e) {
    //exception handling left as an exercise for the reader
}

Klappt's nun immer noch nicht?

jain - habe jetzt deinen Lösungsansatz noch nicht probiert, aber ein kleiner tipp von einem Kolegen, ich solle die Datei doch mal mit Notepad++ öffnen hat geholfen.

Vielen dank trotzdem euch beiden !
 

Neue Themen


Zurück
Oben