Zeilenumbruch bei JTextArea

Status
Nicht offen für weitere Antworten.

comp89

Bekanntes Mitglied
hallo

ich habe eine jtextarea, wo ich einen 5 zeiligen code eingeben kann, der wird beim beenden in einem textfile gespeciehert. nun wenn ich das programm wieder starte, dann ist der ganze text da, es fehlen nur die zeilenumbrüche (also wo eine neue zeile beginnen sollte, geht der text normal weiter)

wie ich festgestellt habe, indem ich mir die textdatei angeschaut habe, ist das problem beim schreibevorgang.
ich weiß das jtextarea eigentlich ins swing board gehört, aber wegen dem speichern

beim 1.start
Hallo
Java
ist
cool

beim 2.mal

hier ist der code vom schreiben in das file:
Code:
    private void setNotizenToFile(JTextArea tarea) throws IOException{
        BufferedWriter out = new BufferedWriter(new FileWriter(new File("Kalender" + File.separator + "notizen.txt")));
        out.write(tarea.getText());
        out.flush();
        out.close();
    }
 

Illuvatar

Top Contributor
Wahrscheinlich liegt der Fehler im Speichern. Vremutung: Du hast sowas:
Code:
JTextArea jta = //...
BufferedReader br = //...
String s;
while ((s = br.readLine()) != null){
  jta.append (s);
}
Das wäre falsch, readLine() gibt den Zeilenumbruch nicht mit zurück.
Korrekt wäre:
Code:
jta.append (s + System.getProperty ("line.separator", "\r\n"));

Wenn du den Fehler nicht drin hast, poste einfach noch mehr Code, weil deiner stimmt.

Edit: Vergiss es, hab
wie ich festgestellt habe, indem ich mir die textdatei angeschaut habe, ist das problem beim schreibevorgang.
überlesen ;)
 

Sky

Top Contributor
Wie sieht denn der String 'tarea.getText()' aus? Sind da irgendwelche Zeilenumbrüche (z.B. '\n') zu sehen?
 

comp89

Bekanntes Mitglied
ja wenn ich sie per System.err.println(tarea.getText()) ausgeben lasse, dann sind die umbrüche noch da
 

comp89

Bekanntes Mitglied
hier ist auch noch der code zum auselsen des files
aber wie schon weiter oben, ich bin mir 100% sicher das der fehler beim schreiben liegt

Code:
    private String getNotizenFromFile(){
        File notizenF = new File("Kalender" + File.separator + "notizen.txt");  // Erzeugt ein neues File-Objekt
        if(notizenF.exists()){      // Liefert true, wenn eine Datei mit dem bezeichneten Pfad und Namen existiert
            try{
                StringBuffer buffer = new StringBuffer();
                BufferedReader in = new BufferedReader(new FileReader(notizenF));
                for (String b;(b = in.readLine()) != null;buffer.append(b));
                in.close();
                return buffer.toString();
            }
            catch(IOException exc){   // wenn ein Fehler auftritt
                return "Datei konnte nicht gelesen werden";
            }
        }
        else{   // wenn das File nicht existiert
            new File("Kalender").mkdir();   // Versucht, das Verzeichnis anzulegen
            return "Notizen\nHier können Sie Ihre Notizen eingeben\nSie werden beim nächsten Start wieder angezeigt";
        }
    }
    
    
    private void setNotizenToFile(JTextArea tarea) throws IOException{
        BufferedWriter out = new BufferedWriter(new FileWriter(new File("Kalender" + File.separator + "notizen.txt")));
        System.err.println(tarea.getText());
        out.write(tarea.getText());
        out.flush();
        out.close();
    }
 

Illuvatar

Top Contributor
Code:
for (String b;(b = in.readLine()) != null;buffer.append(b));

Das ist, was ich oben geschrieben habe. Der Fehler liegt aso beim einlesen. Im Windows-Texteditor werden übrigens im Gegensatz zu JTextArea und System.out nur "\r\n" und nicht "\n" als Zeilenumbuch angezeigt, vielleicht lag das daran.
 

Illuvatar

Top Contributor
Illuvatar hat gesagt.:
Korrekt wäre:
Code:
jta.append (s + System.getProperty ("line.separator", "\r\n"));

Bzw.:

Code:
for (String b;(b = in.readLine()) != null;buffer.append(b + System.getProperty ("line.separator", "\r\n")));
 

comp89

Bekanntes Mitglied
also das mit dem einlesen is ganz einfach
aber...

das ganze ist eine jtextarea, zum eigeben von notizen, dabei weiß ich natürlich nicht, wann der benutzer auf enter gedrückt hat, das dürfte das einzige sein, was noch probleme macht

Code:
                                notizenT.setRows(7);                                               
                                notizenT.setColumns(20);                                          
                                notizenT.setCaretColor(Color.RED);         
                                notizenT.setFont(new Font("SansSerif", Font.PLAIN, 13));
                                notizenT.setToolTipText("Hier können Sie Ihre Notizen eingeben"); 
                                notizenT.setLineWrap(true);
                                notizenT.setWrapStyleWord(true);
                                notizenT.setVisible(true);
                            gbll1.setConstraints(scroll, gbcl1);
                            panellinks1.add(scroll);
 

comp89

Bekanntes Mitglied
tschuldigung das ich euch nochmal gestört hab,
es funktioniert danke illuvatar

ich hab nur aus versehen noch die alte version probiert
danke nochmal
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Zeilenumbruch aus JTextArea entfernen Allgemeine Java-Themen 6
bummerland Zeilenumbruch aus JTextArea Allgemeine Java-Themen 1
T Input/Output Zeilenumbruch Allgemeine Java-Themen 4
OnDemand Zeilenumbruch ignorieren möglich? Allgemeine Java-Themen 1
J XML Dokument Zeilenumbruch in den Quellcode einfügen Allgemeine Java-Themen 5
T ArrayList zeilenumbruch entfernen Allgemeine Java-Themen 13
J Zeilenumbruch per JAVA_OPTS steuern Allgemeine Java-Themen 1
AssELAss String jeweils nach x Zeichen Zeilenumbruch Allgemeine Java-Themen 1
AssELAss Zeilenumbruch immer nach bestimmtem Zeichen Allgemeine Java-Themen 1
H Zeilenumbruch in Quellcode Allgemeine Java-Themen 4
J Zeilenumbruch - Excel Export HSSF Allgemeine Java-Themen 10
E Zeilenumbruch html Allgemeine Java-Themen 3
E Eclipse automatischen Zeilenumbruch unterbinden Allgemeine Java-Themen 2
K String: alle X Zeichen Zeilenumbruch Allgemeine Java-Themen 3
T Swing JTextAera Zeilenumbruch entfernen Allgemeine Java-Themen 7
C OpenOffice Writer und Zeilenumbruch Allgemeine Java-Themen 4
J Regulärer Ausdruck - Der Punkt und der Zeilenumbruch Allgemeine Java-Themen 6
J Drucken mit drawString() und Zeilenumbruch Allgemeine Java-Themen 3
D JExcelAPI -> Zeilenumbruch? Allgemeine Java-Themen 2
S zeilenumbruch in TextArea Allgemeine Java-Themen 5
B Zeilenumbruch erkennen Allgemeine Java-Themen 22
R automatischer zeilenumbruch Allgemeine Java-Themen 2
R zeilenumbruch Allgemeine Java-Themen 2
K Zeilenumbruch in Eclipse beim Codeformater verhindern Allgemeine Java-Themen 10
S Zeilenumbruch nicht von Java interpretieren Allgemeine Java-Themen 5
B String + Zeilenumbruch nach X-Zeichen Allgemeine Java-Themen 4
G Zeilenumbruch beim BufferedWriter? Allgemeine Java-Themen 3
G Javadoc Zeilenumbruch Allgemeine Java-Themen 2
E Zeilenumbruch in einer Textdatei Allgemeine Java-Themen 2
G Zeilenumbruch Allgemeine Java-Themen 15
B Zeilenumbruch bei Schreiben einer Textdatei Allgemeine Java-Themen 10
G JEditorPane Zeilenumbruch Allgemeine Java-Themen 1
N Zeilenumbruch in String nach jeweils x Zeichen einfügen? Allgemeine Java-Themen 6
G Zeilenumbruch in Subview Allgemeine Java-Themen 2
T - Zeilenumbruch entfernen Allgemeine Java-Themen 2
J Zeilenumbruch löschen Allgemeine Java-Themen 10
K Zeilenumbruch String Allgemeine Java-Themen 3
G Mit FileWriter Zeilenumbruch schreiben Allgemeine Java-Themen 8
H Swing JTextArea als TableCellRenderer in JTable - wie Zeilen selektieren? Allgemeine Java-Themen 47
B System.out Ausgabe auf jtextarea Fehlersuche Allgemeine Java-Themen 8
N Daten einer JCoTable in JTextArea anzeigen Allgemeine Java-Themen 7
T Resize JTextArea Allgemeine Java-Themen 3
L Text von txt auf JTextArea Allgemeine Java-Themen 4
B JTextArea 6 mal auf DinA4 Format verteilen und drucken Allgemeine Java-Themen 1
X System.out/err(Die Console) in JTextArea ausgeben Allgemeine Java-Themen 2
M Output einer anderen/externen .jar in eigene JTextArea Allgemeine Java-Themen 4
D JTextArea mit setBounds() Allgemeine Java-Themen 3
I JTextArea soll nur drei Zeilen anzeigen Allgemeine Java-Themen 1
F JTextArea Cursor in die nächste Zeile setzen Allgemeine Java-Themen 2
S Swing Text in eine JTextArea schreiben Allgemeine Java-Themen 17
Z Ausschneiden, Kopieren, Einfügen, Löschen in JTextArea Allgemeine Java-Themen 5
R via JButton in JTextArea printen Allgemeine Java-Themen 2
I Tab stop in jtextarea Allgemeine Java-Themen 2
X HTTP Problem mit static/non static JTextArea Update Allgemeine Java-Themen 17
E JTextArea / JEditorPane + Text formatieren Allgemeine Java-Themen 3
P JTextArea als Log umfunktionieren Allgemeine Java-Themen 5
H image in jtextarea/JLabel einbinden... Allgemeine Java-Themen 4
D Inhalt der JTextArea drucken Allgemeine Java-Themen 2
G Text aus Zwischenablage in JTextarea -> JDBC Error Allgemeine Java-Themen 3
Escorter Threads und JTextArea Allgemeine Java-Themen 2
G JTextArea auslesen Allgemeine Java-Themen 10
H Externe Prozesse und Inputstreams - ausgabe in JTextArea Allgemeine Java-Themen 3
O Datei in eine JTextarea reinladen Allgemeine Java-Themen 2
M JTextArea Allgemeine Java-Themen 2
C JTextArea clear! Allgemeine Java-Themen 4
M Tab und KeyListener in einer JTextArea Allgemeine Java-Themen 7
D Textdatei und JTextArea Allgemeine Java-Themen 5
G JTextArea vs JTextPane Allgemeine Java-Themen 2
G JTextArea im JScrollpane automatisch mitscrollen Allgemeine Java-Themen 4
W JTextArea beschleunigen bei großen Texten Allgemeine Java-Themen 4
G Fragen zu JTextField bzw. JTextArea Allgemeine Java-Themen 2
G Compiler Exception auf JTextArea umleiten Allgemeine Java-Themen 4
bernd Unterschiede von Ordnerstrukturen in JTextArea anzeigen Allgemeine Java-Themen 4
thE_29 Komponente beliebig in einer JTextArea platzieren Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben