2012-12-20 18 views
5

Sto provando a inviare una posta leggendo il contenuto dal file di testo.Il comando Nuova riga ( n) non funzionava mentre i file di linea con TomCat

File Sto cercando di leggere

Line 1 
Line 2 
Line 3 

Ho testato il codice con JUnit e prendere la posta con la stessa formattazione nel file di testo.

posta in uscita utilizzando Junit

Line 1 
Line 2 
Line 3 

Ma quando schierato in Tomcat, ottengo una mail con il testo, ma le nuove linee non sono sempre riconosciuti.

la posta in uscita quando si utilizza server Tomcat

Line 1Line 2Line 3 

codice che sto usando per leggere il contenuto del file.

private String readFile(String pathname) throws IOException { 
     File file = new File(pathname); 
     StringBuilder fileContents = new StringBuilder((int) file.length()); 
     Scanner scanner = new Scanner(file); 
     String lineSeparator = System.getProperty("line.separator"); 

     try { 
      while (scanner.hasNextLine()) { 
       fileContents.append(scanner.nextLine() + lineSeparator); 
      } 
      return fileContents.toString(); 
     } finally { 
      scanner.close(); 
     } 
    } 

ho messo il server in modalità debug e posso vedere che la nuova linea è sempre accodato in fileContents.toString()

Non sono sicuro di quello che mi manca. Qualcosa relativo al set di caratteri? Non sono sicuro ...

+0

Come presumo che il valore lineSeparator non possa ottenere come previsto in tomcat. – iMBMT

+0

Linux e Windows hanno separatori di linea diversi –

+1

Come stai leggendo l'email? Potrebbe essere il tuo client di posta a rovinare le nuove linee. – Perception

risposta

1

Ha qualcosa a che fare con indizio dalla percezione e nullix. Come si legge la posta e l'HTML.

Nel mio caso, stavo testando inviando posta da un client di posta che inviava i messaggi di tipo "text/html" alla mia applicazione. Quindi quando rispondo a quella mail, la mail di risposta era anche in formato "text/html". Quindi lo /n o il tipo di feed di linea che ho usato è stato omesso.

Quindi durante la lettura della posta ho letto solo "text/plain" tipo mime. Quindi mentre rispondevo a questa mail, potevo far stampare la nuova riga.

0

Forse il modo in cui stai leggendo l'output di posta ti fa pensare che la nuova riga non sia lì. Ad esempio se scrivi '\ n' come newline, e apri il file sul blocco note di Windows, allora sembrerebbe che il newline non sia lì.

Utilizzando più sofisticato visualizzatore di testo come Notepad ++, dove si può vedere il carattere di spazio potrebbe aiutare