2014-05-01 24 views
13

Perché il seguente codice Groovy non aggiunge "hello di nuovo" su una nuova riga?Come aggiungere testo a un file su una nuova riga

f = new File('myfile.txt') 
f.append('hello again!\n') 

Questo si aggiunge alla miofile.txt dopo l'ultima riga, ma non su una nuova linea. Come applico il testo su una nuova riga?

+0

V. https://stackoverflow.com/questions/1761051/difference-between-n-and-r – javaPlease42

risposta

25

Si dovrebbe mettere il primo \n. In questo modo la nuova linea verrà scritto prima il testo: la sintassi concisa

f.append('\nhello again!') 
+0

Lo provo su console groovy, e io avere la s un problema! –

+0

Invece di '\ n', hai provato a usare il separatore di riga del tuo sistema operativo, come per la risposta di @MidoDev? –

+0

puoi dare un esempio? –

4

È sempre possibile ottenere il carattere di nuova riga corretta attraverso

System.getProperty("line.separator") 

quindi aggiunto prima il testo

+0

intendi aggiungere la riga "System.getProperty (" line.separator ")" prima della riga -> f.append ('ciao di nuovo! \ N'), (mi dispiace per la domanda Sono molto nuovo in groovy) –

+0

f.append (Sistema. getProperty ("line.separator") "+ 'ciao di nuovo! \ n') – CodeIsLife

+0

Se stai costruendo un sacco di stringhe, allora dovresti probabilmente fare qualcosa del tipo: def nl = System.getProperty (" line.separator "); Dopodiché il tuo codice sarà simile a: f.append ("$ {nl} hello again!"). Ti permetterebbe di creare un pattern breve che potresti usare in molte istruzioni di output. –

3

Groovy per la scrittura in un file:

f << '\n' << 'hello again' 
3

Ancora un altro modo di fare questo. In questo caso, non c'è bisogno di aggiungere il carattere di nuova riga manualmente

File greetingsFile = new File("myfile.txt") 
greetingsFile.withWriterAppend{ out -> 
    out.println 'hello again!' 
} 
Problemi correlati