2010-11-29 29 views
3

Je tente de charger le contenu d'un fichier texte contenant du texte sur plusieurs lignes à l'aide de la servlet java.
Lorsque je teste servlet dans le navigateur, cela fonctionne très bien. Le texte est chargé avec de nouveaux caractères de ligne.
Mais quand je le charge à une chaîne dans mon application de swing et que j'utilise ensuite textpane.setText(text); les nouvelles lignes ont disparu. J'ai essayé de nombreuses solutions trouvées sur le net, mais je n'arrive toujours pas à le faire correctement.Pourquoi est-ce que je perds le caractère de nouvelle ligne quand je charge le texte d'une servlet java à JTextPane?

code Servlet:
texte de lecture du fichier (simplifié):

File file = new File(path); 
StringBuilder data = new StringBuilder(); 
BufferedReader in = new BufferedReader(new FileReader(file)); 
String line; 
while ((line = in.readLine()) != null) { 
    data.append(line); 
    data.append("\n"); 
} 
in.close(); 

Envoi du texte:

PrintWriter out = response.getWriter(); 
out.write(text)); 

Est-ce un problème de plate-forme? Servlet a été écrit et compilé sous Linux, mais je l'ai exécuté sous Windows (sur JBoss). Les fichiers texte sont également stockés sur ma machine.

+0

Si les fenêtres essayer data.append ("\ r \ n") au lieu de \ n – saugata

+0

J'ai essayé et il ny a pas » de travail. – hitan

Répondre

0

Au lieu de data.append("\n") utilisation

data.append(System.getProperty("line.separator")); 
+0

Il ne fonctionne pas, toujours pas de nouvelles lignes. – hitan

+0

Peut-être que vous pouvez déboguer la variable 'text' avant d'écrire. A quoi ressemble le séparateur de ligne? –

+0

Le séparateur est '\ n' et avant d'envoyer du texte, c'est bien. Aussi quand j'ouvre le dossier que j'ai sauvé sur le disque using cette servlet (cela fonctionne dans les deux sens) dans le bloc-notes je n'ai pas de nouvelles lignes, mais quand j'ouvre le même dossier dans WordPad tout est ok. Je pense qu'il y a un bug simple quelque part et je ne le trouve pas vraiment: / – hitan