2016-04-15 3 views
0

J'essaie de sauvegarder un "historique" que je construis après avoir envoyé une commande à partir d'une ligne, donc chaque fois que vous appuyez sur Entrée les commandes vont au jTextPane avec un séparateur de ligne. Cependant, lorsque je sauvegarde le fichier, il ne semble pas avoir le séparateur de ligne. Exemple, mon JTextPane a quelque chose comme:Enregistrement du texte jTextPane ne fonctionne pas correctement

Create database user 
use database user 
show tables from database 

Au lieu d'enregistrer l'espace de travail comme ça, ça me donne ceci:

Créer base de données base de données useruse usershow tables de base de données

Que dois-je faire? Voilà mon code

String ar; 
    String TEXTO = jTextPane1.getText() + System.lineSeparator(); 
    FileFilter ft = new FileNameExtensionFilter("Text Files", ".txt"); 
    FC.setFileFilter(ft); 
    int returnVal = FC.showSaveDialog(this); 

    if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) { 

     java.io.File saved_file = FC.getSelectedFile(); 
     String file_name = saved_file.toString(); 
     File archivo; 
     ar = "" + file_name + ".txt"; 

     archivo = new File(ar); 
     try { 
      if (saved_file != null) { 
       try (FileWriter GUARDADO = new FileWriter(ar)) { 
        GUARDADO.write(TEXTO); 
       } 
      } 
     } catch (IOException exp) { 
      System.out.println(exp); 
     } 
    } 
+0

Au fait. Le "System.lineSeparator()" est quelque chose que j'ai essayé, mais cela ne fonctionnera pas car il met la ligne après qu'il lit tout à partir du TextPane –

Répondre

0

Vous devez utiliser:

jTextPane1.getDocument().getText(0,jTextPane1.getDocument().getLength()); 
+0

Cela pourrait être une solution mais encore ... N'écrit pas tout comme je veux , parce qu'il crée toujours une seule ligne avec chaque mot qu'il trouve au lieu de donner le séparateur de ligne –

+0

J'ai essayé d'utiliser l'entrée d'échantillon que vous avez donné et cela semble fonctionner correctement. S'il vous plaît expliquer, si quelque chose d'autre que je ne reçois pas. – rushabhshah1693

0

Le problème est que vous devez utiliser/n au lieu de System.lineSeparator. Le comportement JTextPane ne dépend pas du système.