textdatei speichern

BlubBlub

Bekanntes Mitglied
hi,

mit meinem editor kann ich einen text, den ich in einer JTextArea geschrieben habe mittels des .showSaveDialog speichern.
an und für sich funktioniert das speichern und auch das anschließende öffnen der datei in meinem editor.
der text der zuvor gespeichert wurde wird genau in der selben art und weise beim öffnen wieder angezeigt. die zeilenumbrüche, einrückungen etc sind alle so wie sie sein sollen.
aber wenn ich die textdatei nicht in meinem selbstgeschriebenen editor öffne, sondern mit dem windows standardeditor dann ist alles in einer zeile geschrieben.

wenn in der JTextArea steht:
test

test test

test test test

so wird es so abgespeichert:
testtest testtest test test

die zeilenumbrüchen sind also nicht zu sehen.
beim öffnen dieser datei in meinem eigenen editor funktioniert es aber wieder einwandfrei.

die frage ist, wie kann ich sicherstellen, dass im windows editor der text mit zeilenumbrüchen dargestellt wird?


Java:
	       fileMenu.add(new AbstractAction()
	       { 
	    	   { 
	    		   putValue( Action.NAME, "Speichern als..." ); 
	    		   putValue( Action.ACCELERATOR_KEY , KeyStroke.getKeyStroke("ctrl S") ); 
	    		   putValue( Action.SMALL_ICON,     new ImageIcon(MyEditor.class.getResource("/toolbarButtonGraphics/general/SaveAs16.gif")) ); 
	    	   }	 
	
	    	   public void actionPerformed( ActionEvent e )
	    	   { 
	    		   if ( fc.showSaveDialog( null ) == JFileChooser.APPROVE_OPTION )
	    		   {
	    			   File file = fc.getSelectedFile();
	    			   
	    				if(file.getName().toLowerCase().endsWith(".txt"))
	    				{
	    				    try {
	    				        FileWriter writer = new FileWriter(file);
	    				        writer.write(textArea.getText());
	    				        writer.flush( );
	    				        writer.close( );
	    				    }
	    				    catch (IOException ioe) {
	    				        ioe.printStackTrace( );
	    				    }

	    				}
	    		   }
	    	   } 
	       });
 
Zuletzt bearbeitet:

KrokoDiehl

Top Contributor
Ich bin mir sicher, dass (fast) jeder andere Texteditor außer Notepad die Zeilenumbrüche richtig anzeigen wird (zB auch WordPad). Damit es in Notepad wie erwartet aussieht, müssen die Zeilenumbrüche mit
Code:
\r\n
gesetzt werden. Normalerweise nimmt man nur ein
Code:
\n
.
 

eRaaaa

Top Contributor
Die JTextArea benutzt für Zeilenumbrüche ASCII 10 = LF = \n
Das kann nicht jeder Editor verstehen...was du machen könntest wären z.B.:#
Java:
					  FileWriter writer = new FileWriter(file);
					Scanner sc = new Scanner(new StringReader(textArea.getText()));
					String newline = System.getProperty("line.separator");
					while(sc.hasNextLine()){
						writer.write(sc.nextLine());
						writer.write(newline);
					}
					writer.flush( );
					writer.close( );

oder vllt auch mal hier: DefaultEditorKit (Java Platform SE 6)
das Newlines lesen *g*
 

BlubBlub

Bekanntes Mitglied
wo muss ich die zeilenumbrüche \n bzw. \r denn setzen?

das problem ist ja ich habe den text in einer JTextArea.
ich könnte mit einem BufferedReader den kompletten text einlesen und
dann zeilen weise mit einem BufferedWriter in die datei schreiben und nach jedem einfügen
der zeile könnte ich einen zeilenumbruch einfügen.
aber das ist finde ich ein bisschen umständlich.

leider gibt es keine methode textArea.getLine() mit welcher ich mir obige vorgehensweise sparen könnte.
ich hab nur die methode textArea.getText().
 
G

Gast2

Gast
Übrigens kannst du glaub auch die Methode JTextarea#writer benutzen und da deinen FileWriter mitreingeben...
 

BlubBlub

Bekanntes Mitglied
@eRaaaa: okay dann hätte ich aber auch nen umweg über den scanner. ok anscheinend gibt es nicht die möglichkeit ohne der verwendung eines scanners oder readers, das gewünschte ergebnis zu erzielen.

find ich voll seltsam, dass die umbrüche einfach weggelassen werden, dadurch kann man ja texte
gar nicht so speichern wie im original sind.
 

BlubBlub

Bekanntes Mitglied
so also ich hab das jetzt, wie eRaaaa es vorgeschlagen hat gelöst.
zusätzlich hab ich aber noch den BufferedWriter verwendet, da ich
im internet gelesen habe, dass man damit das verfahren optimiert,
da nicht soviele write() aufrufe erfolgen.

also so wie ichs verstehe sollte man den FileWriter und den FileReader, zwecks optimierung
immer in verbindung mit dem BufferedWriter und BufferedReader verwenden.

Java:
  public void actionPerformed( ActionEvent e )
	    	   { 
	    		   if ( fc.showSaveDialog( null ) == JFileChooser.APPROVE_OPTION )
	    		   {
	    			   File file = fc.getSelectedFile();
	    			   
	    				if(file.getName().toLowerCase().endsWith(".txt"))
	    				{
	    				    try {
	    				    	BufferedWriter bw = new BufferedWriter(new FileWriter (file));		//FileWrite mit BufferedWriter benutzen (optimiertes vorgehen)
	    	                    Scanner sc = new Scanner(new StringReader(textArea.getText()));		//Um in den Windows Editor die Umbrüche mitzuspeichern
	    	                    String newline = System.getProperty("line.separator");
	    	                    while(sc.hasNextLine())
	    	                    {
	    	                        bw.write(sc.nextLine());
	    	                        bw.write(newline);
	    	                    }
	    				        bw.flush( );
	    				        bw.close( );
	    				    }
	    				    catch (IOException ioe) {
	    				        ioe.printStackTrace( );
	    				    }
	    				}
	    		   }
	    	   } 
	       });
 

eRaaaa

Top Contributor
eine sache versteh ich nicht ganz, wieso verwendest du dort den StringReader.
Hab grad ebend in der Api geschaut und wenn man nur textArea.getText als Agrument dem Scanner übergibt funktionierts auch.

Joah keine Ahnung, habe ich mir nichts bei gedacht. War ja auch nur ein Beispiel =)
Eine andere Möglichkeit wäre ja auch noch
Java:
textArea.getText().replace("\n", System.getProperty("line.separator")
;):oops:

Irgendwie funktioniert das mit dem EndOfLineStringProperty bei mir nämlich gerade auch nicht...(muss wohl am Benutzer liegen *g*)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
D String als Textdatei in ausgewähltem Speicherplatz speichern AWT, Swing, JavaFX & SWT 32
J Aus einer JList den Inhalt als Textdatei speichern AWT, Swing, JavaFX & SWT 15
J Integer aus Textdatei auslesen und in Variable speichern AWT, Swing, JavaFX & SWT 11
G Den Ihnhalt aus einem JTextArea in eine Textdatei speichern? AWT, Swing, JavaFX & SWT 16
N In Textdatei Text anfügen per GUI AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
T textdatei beschreiben AWT, Swing, JavaFX & SWT 3
X Zeilen aus einer Textdatei einzelnd als String abrufen AWT, Swing, JavaFX & SWT 8
P JavaFX Mit Stream-API (1.8) in Textdatei schreiben AWT, Swing, JavaFX & SWT 3
K GUI Elemente über eine separate Textdatei beschriften? AWT, Swing, JavaFX & SWT 4
C SWT Combobox mit Textdatei füllen AWT, Swing, JavaFX & SWT 2
S Textdatei zu JTable AWT, Swing, JavaFX & SWT 14
L Zeilenumbrüche aus JTextArea MIT in Textdatei schreiben AWT, Swing, JavaFX & SWT 4
A Swing von Textdatei einlesen und per JLabel anzeigen AWT, Swing, JavaFX & SWT 2
J Daten aus einer Textdatei in ArrayList holen AWT, Swing, JavaFX & SWT 9
B SWT Textdatei Lesen und Anzeige in View - Zeichensatzproblem AWT, Swing, JavaFX & SWT 4
G Komponente zur Anzeige einer Textdatei. AWT, Swing, JavaFX & SWT 10
G Anzeigen einer Textdatei in einem Fenster AWT, Swing, JavaFX & SWT 6
MiMa Speichern von Image als JPG auf Festplatte AWT, Swing, JavaFX & SWT 9
J Eingaben aus Textfield & ComboBox speichern und in ComboBox wieder ausgeben AWT, Swing, JavaFX & SWT 3
officialmaxl JavaFX Textfield getTextfield() in String speichern AWT, Swing, JavaFX & SWT 1
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
J Warum kann ich die Spaltennummer in der Konsole anzeigen, diese aber nicht speichern ? AWT, Swing, JavaFX & SWT 6
F Output Stream / File Dateien / Speichern AWT, Swing, JavaFX & SWT 13
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
S URLS speichern von Internetseiten AWT, Swing, JavaFX & SWT 3
S Bild neu skalieren - Bild in Bild speichern? AWT, Swing, JavaFX & SWT 6
P Adressbuch Werte speichern AWT, Swing, JavaFX & SWT 21
G Eingabe in JTextField in Array speichern und in JList ausgeben AWT, Swing, JavaFX & SWT 7
G JTextField Eingabe in DB speichern AWT, Swing, JavaFX & SWT 68
B TableView als PDF speichern AWT, Swing, JavaFX & SWT 8
cool_brivk24 libGDX Welt speichern AWT, Swing, JavaFX & SWT 0
R Scene speichern AWT, Swing, JavaFX & SWT 7
D Inhalt von JTextField in MySQL speichern. Wie ? AWT, Swing, JavaFX & SWT 1
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
S Swing jScrollPane - pro Eintrag der Liste, die jCheckBoxes Speichern die in dem Eintrag aktiviert wurden AWT, Swing, JavaFX & SWT 2
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
I JavaFX formatierter Text in PDF speichern AWT, Swing, JavaFX & SWT 4
GenerationLost JavaFX FileChooser speichern ohne Zieldatei? AWT, Swing, JavaFX & SWT 12
A Swing Gemaltes Bild über saveDialog speichern unter AWT, Swing, JavaFX & SWT 15
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
U Eingabe von TextField in variable speichern AWT, Swing, JavaFX & SWT 2
M Kamerabilder in ein Ordner speichern AWT, Swing, JavaFX & SWT 12
F Gezeichnetes als bild speichern AWT, Swing, JavaFX & SWT 4
I JavaFX Speichern der eingefügten Einträge beim Neustart des Programms AWT, Swing, JavaFX & SWT 2
I Variabeln speichern in Desktop Anwendung AWT, Swing, JavaFX & SWT 2
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
S JavaFX Fenstergrösse automatisch Speichern und Laden AWT, Swing, JavaFX & SWT 4
J Swing Fenstereinstellungen speichern AWT, Swing, JavaFX & SWT 2
M Combo Box auswahl in eine Datenbank speichern AWT, Swing, JavaFX & SWT 1
M ausgewählte Inhalt von ListItem inn ComboBox in der Tabelle speichern AWT, Swing, JavaFX & SWT 0
M Bild Beschreibung mit ImageIO speichern AWT, Swing, JavaFX & SWT 1
C Image laden und Speichern - Image wird auf JPanel nicht angezeigt AWT, Swing, JavaFX & SWT 4
J Swing JTable speichern AWT, Swing, JavaFX & SWT 2
C GUI öfters durchlaufen und hinterher Bild speichern AWT, Swing, JavaFX & SWT 1
S Panelzeichnung speichern AWT, Swing, JavaFX & SWT 2
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
M Bild aus JLabel resizen und speichern AWT, Swing, JavaFX & SWT 0
A Swing Malprogramm Bild speichern? AWT, Swing, JavaFX & SWT 9
G Subimage von BufferedImage speichern AWT, Swing, JavaFX & SWT 4
Y JavaFX Bild speichern und Pfad dazu abspeichern AWT, Swing, JavaFX & SWT 2
D JPanel Graphic2D als BufferedImage Speichern AWT, Swing, JavaFX & SWT 5
A JFileChooser Datei speichern AWT, Swing, JavaFX & SWT 4
B Bildverlust bei Speichern in .jar-Archiv AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Bildteile in ein anderes Bild speichern AWT, Swing, JavaFX & SWT 12
B Datenübergabe zwischen Tabs und Daten speichern AWT, Swing, JavaFX & SWT 2
J JFileChooser - Datei speichern AWT, Swing, JavaFX & SWT 7
J JTree speichern AWT, Swing, JavaFX & SWT 4
kodela Teil eines Panels als Graphik speichern AWT, Swing, JavaFX & SWT 3
T Modell als XML Speichern / Laden AWT, Swing, JavaFX & SWT 9
P TextField beim klicken von JButton speichern AWT, Swing, JavaFX & SWT 17
P Öffnen, Speichern von Dat. über DialogBoxen AWT, Swing, JavaFX & SWT 10
B Zustand eines GUI speichern AWT, Swing, JavaFX & SWT 8
I Dialog zum Speichern? AWT, Swing, JavaFX & SWT 16
M JTable Drucken NullpointerException +JTable speichern AWT, Swing, JavaFX & SWT 6
J Swing JTable-Daten Speichern und bei zeilen-änderung beibehalten. AWT, Swing, JavaFX & SWT 6
M Datei Speichern unter Dialog - SWT AWT, Swing, JavaFX & SWT 3
T SWT:Datei speichern / öffnen AWT, Swing, JavaFX & SWT 6
T speichern funktioniert,aber öffnen nicht AWT, Swing, JavaFX & SWT 2
W Grafik von JFrame korrekt speichern AWT, Swing, JavaFX & SWT 7
M Position eines JLabels speichern? AWT, Swing, JavaFX & SWT 3
P nicht sichtbares JPanel / JFrame als Image speichern AWT, Swing, JavaFX & SWT 3
A BufferedImage nach dem Speichern immer schwarz AWT, Swing, JavaFX & SWT 8
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
S JTable - Sortierung beibhalten / Speichern. AWT, Swing, JavaFX & SWT 3
C Checkbox-zustände in einem JFrame speichern AWT, Swing, JavaFX & SWT 8
R Graphics-Object speichern AWT, Swing, JavaFX & SWT 4
T Image skaliert in Variable speichern AWT, Swing, JavaFX & SWT 6
B Panel als Bild speichern AWT, Swing, JavaFX & SWT 11
Daniel_L Grafik erstellen, drin zeichnen und dann speichern AWT, Swing, JavaFX & SWT 2
K Swing Komponente als Bild speichern AWT, Swing, JavaFX & SWT 11
E Profilsichten speichern und dynamsich erzeugen?! AWT, Swing, JavaFX & SWT 2
N JTable direkt editierenund in Datenbanken speichern AWT, Swing, JavaFX & SWT 5
D Swing JTable in Datei speichern und laden AWT, Swing, JavaFX & SWT 3
R JComboBox Ausgabe in String speichern AWT, Swing, JavaFX & SWT 3
F Wert zu Eintrag in ComboBox speichern?! AWT, Swing, JavaFX & SWT 7
0 Ausschnitt eines JPanels als Bild speichern AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben