PDA

View Full Version : Strano dubbio con Java


Craving
04-04-2006, 11:00
Sto scrivendo un programma in Java che salva un file con roba scritta dentro e ogni fine riga inserisco la escape sequence \n come sempre.
Il file risultante però quando lo apro col Blocco note non mi fa vedere l'a capo riga. Però gli altri editor si. Perchè il blocco note non mi va a capo?

andbin
04-04-2006, 11:23
Sto scrivendo un programma in Java che salva un file con roba scritta dentro e ogni fine riga inserisco la escape sequence \n come sempre.
Il file risultante però quando lo apro col Blocco note non mi fa vedere l'a capo riga. Però gli altri editor si. Perchè il blocco note non mi va a capo?Non devi mettere esplicitamente l'escape \n. Non sei in "C" dove il \n viene automaticamente convertito nella sequenza di end-of-line giusta (in base al S.O.)! ;)
Dipende da quali classi di I/O hai usato. Se usi ad esempio la BufferedWriter, puoi usare il metodo newLine().

Craving
04-04-2006, 18:35
Io uso un FileWriter, ma con altri editor o word stesso gli a capo ci sono

andbin
04-04-2006, 20:50
Io uso un FileWriter, ma con altri editor o word stesso gli a capo ci sonoIl blocco note si aspetta dei file con fine riga CR+LF (lo standard nei sistemi Dos/Win). Altri editor, ad esempio ConTEXT (che uso spesso) o altri ancora, accettano e riconoscono anche i file con fine riga nello stile Unix (LF) e/o Mac (CR). Dipende dall'editor!!!

Se in Java "butti fuori" in output un semplice \n, ottieni un linefeed e basta (stile Unix), quindi con il blocco note, non lo vedi corretto.

Se la classe che usi per l'I/O non ha il metodo newLine() e, in generale, quando devi conoscere quale è la sequenza di fine riga da usare, puoi sempre fare:
String newline = System.getProperty("line.separator");

franksisca
04-04-2006, 21:43
prova \n\r ;)

andbin
04-04-2006, 22:12
prova \n\r ;)No, al massimo "\r\n" (e non è comunque portabile).
Infatti, ad esempio, l'applicazione blocco note non riconosce la sequenza LF+CR.

Vedere per credere!
http://img226.imageshack.us/img226/3205/notepadnewline0jy.gif

franksisca
04-04-2006, 22:43
No, al massimo "\r\n" (e non è comunque portabile).
Infatti, ad esempio, l'applicazione blocco note non riconosce la sequenza LF+CR.

Vedere per credere!
http://img226.imageshack.us/img226/3205/notepadnewline0jy.gif
ok;)

Craving
05-04-2006, 08:46
Figata! Ora provo subito...
Funziona! E così è anche portabile
Oro, Grazie mille :D