2016-08-09 1 views
2

Je comprends que ma question pourrait être répétée, mais je n'ai pas trouvé la réponse dont j'ai besoin dans la réponse d'une autre question, J'ai un textArea où les données ont été ajoutées ici. et je veux écrire les données dans un fichier avec le même style de lignes que dans la zone de texte Mon résultat textArea ressemble à ceciÉcrire ou imprimer ligne par ligne dans un fichier texte à partir d'une chaîne de champ get text

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 

Lorsque je tente de l'écrire dans un fichier texte il est écrit là comme Après le oui, la deuxième ligne est écrite immédiatement.

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 

J'ai essayé d'utiliser le flux d'impression et écrivain de fichiers et tous donnent le même, j'ai essayé et mises en mémoire tampon écrivain et ajouter une nouvelle ligne, toujours le même problème

mon code pour cela est

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(); 
} 

Merci pour votre aide

+0

Debug votre programme, et vérifier que des sauts de ligne ('\ r \ n' ou que '\ r') que vous avez dans la variable 'getTextArea_1 'et s'ils sont compatibles avec vos systèmes. Peut-être que vous devez les remplacer par les bons. –

+0

Vous pouvez aussi jeter un œil sur 'try-with-resources'. Il fait le '.close()' pour vous. - https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html –

Répondre

1

changer votre try-catch à quelque chose comme ceci:

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

Vous êtes un homme génial. J'ai déjà essayé la même chose auparavant, mais je déclarais toujours le tableau avant les clauses try catch et ça n'a jamais marché, merci beaucoup, c'est une bonne leçon à apprendre;) –

1

vous devez ajouter un \ n après votre premier append, ou vous allez écrire sur la même ligne

+0

Qu'est-ce que * first append *? Il n'y en a qu'un, et cela écrit tout le contenu de 'textArea' à la fois. –