2016-06-04 1 views
0

J'ai un problème avec l'écriture dans un fichier.Enregistrement du contenu de JTextArea dans un fichier avec des séparateurs de lignes

Généralement, je crée un éditeur de texte simple. Je charge le fichier de cette façon:

try(BufferedReader br = new BufferedReader(new FileReader(currentlyEditedFile))) { 
      String line = ""; 
      editor.setText(""); 
      while((line = br.readLine()) != null) { 
       editor.append(line + "\n"); 
      } 
     } catch(Exception ex) { 
      ex.printStackTrace(); 
     } 

et après quelques modifications, je veux sauvegarder (écrire) dans le fichier.

que je fais de cette façon:

try(PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(currentlyEditedFile)))) { 
      String[] lines = editor.getText().split("\\n");//Tried \n, \\n 
      for(String s : lines) 
       pw.println(s); 
     } catch(Exception ex) { 
      ex.printStackTrace(); 
     } 

et le contenu d'accéder au fichier, mais il est en une seule ligne. Des idées comment écrire ligne par ligne?

+0

Utilisez-vous Windows? – Hackerdarshi

+0

oui, Windows 10 – DamDev

Répondre

2

Vous pouvez charger le contenu d'un fichier texte dans JTextArea en suivant de manière simple:

JTextArea textArea = new JTextArea(); 
FileReader reader = new FileReader("D:/text1.txt"); 
textArea.read(reader, "Content of File"); 
reader.close(); 

Vous pouvez écrire le contenu de JTextArea dans un fichier suivant simple et plate-forme de manière indépendante:

PrintWriter pw=new PrintWriter("D:/text1.txt"); 
textArea.write(pw); 
pw.close(); 

J'espère que ça te sera utile.

+0

Belle manière simple, mais elle a les mêmes effets que ma solution. Le chargement du contenu dans JTextArea fonctionne correctement, mais l'enregistrement du contenu sur une seule ligne. :) – DamDev

+0

@DamDev S'il vous plaît regardez le fichier original. A-t-il tout sur une seule ligne? Si vous utilisez '\ r \ n', cela fonctionnera-t-il de la même façon sur Linux? J'ai effectivement testé sur mon système Windows, il semble bien fonctionner. –

+0

Oui, ma mauvaise. Juste le fichier chargé généré par la méthode pravious, probablement c'est pourquoi cela n'a pas fonctionné. Je l'ai essayé encore une fois et ça marche bien. Je vous remercie! :) – DamDev

1

Si vous utilisez Windows, vous devez faire:

editor.append(line + "\r\n"); 

Parce que la nouvelle ligne dans Windows est notée par \r\n, à savoir un retour chariot et une ligne d'alimentation.