2016-08-09 241 views
2

Ich verstehe, dass meine Frage wiederholt werden könnte, aber ich konnte die Antwort nicht finden, die ich brauche in der anderen Frage, Ich habe eine TextArea wo einige Daten wurden dort angehängt. und ich möchte, dass die Daten in eine Datei mit dem gleichen Stil von Linien zu schreiben, wie in der Textarea My sieht textarea Ergebnis wie diesesSchreiben oder Drucken Zeile für Zeile zu einer Textdatei aus einem Get Textfeld Zeichenfolge

Type Model Serial  Country WTY START WTY END  SER.STRT SER.END  Int.Warrnty 
1234 123 1234567  XXXXXX 2012-07-04 2015-07-03 2012-07-04 2015-07-03 Yes 
5678 456 4567890  XXXXXX 2011-05-11 2014-06-24 ....-..-.. ....-..-.. No 

Wenn ich versuche, es auf einen Text zu schreiben, Datei, die es dort geschrieben wird, wie Nach dem Ja wird die zweite Zeile sofort geschrieben.

Type Model Serial  Country WTY START WTY END  SER.STRT SER.END  Int.Warrnty 
1234 123 1234567  XXXXXX 2012-07-04 2015-07-03 2012-07-04 2015-07-03 Yes5678 456 4567890  XXXXXX 2011-05-11 2014-06-24 ....-..-.. ....-..-.. No 

Ich habe versucht, Print-Stream und Datei Schriftsteller und alle geben das gleiche zu verwenden, habe ich versucht, auch Schriftsteller gepuffert und neue Zeile hinzufügen, noch das gleiche Problem

mein Code dafür ist

String getTextArea_1 = textArea_1.getText(); 
String userHomeFolder = System.getProperty("user.home"); 
File file = new File(userHomeFolder, "RESULT_3.txt"); 
try { 
    FileWriter fw = new FileWriter(file); 
    fw.append(getTextArea_1); 
    fw.flush(); 
    fw.close(); 
} catch (IOException e1) { 
    e1.printStackTrace(); 
} 

Vielen Dank für Ihre Hilfe

+0

Debug Ihr Programm, und prüfen Sie, welche Zeilenumbrüche ('\ r \ n' oder nur '\ r'), müssen Sie in der Variablen 'getTextArea_1 'und wenn sie mit Ihren Systemen kompatibel sind. Vielleicht müssen Sie sie durch die richtigen ersetzen. –

+0

Sie können auch in "try-with-resources" schauen. Es macht die '.close()' für Sie. - https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html –

Antwort

1

Änderung Ihrer try-catch etwas wie folgt aus:

try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) { 
    String[] strings = getTextArea_1.split("\n"); 
    for (String s : strings){ 
     writer.write(s); 
     writer.newLine();   
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

Du bist ein toller Mann. Ich habe das schon vorher versucht, aber ich habe immer das Array vor den try catch Klauseln deklariert und es hat nie funktioniert, vielen Dank, es ist eine gute Lektion zu lernen;) –

1

Sie benötigen einen \ n nach dem ersten append anfügen, oder Sie werden auf der gleichen Linie

schreiben
+0

Was * zuerst anhängen *? Es gibt nur einen, und das schreibt den gesamten Inhalt des 'textArea' gleichzeitig. –