Il carattere di fine riga su file di testo è diverso a seconda del sistema operativo.
Su windows abbiamo CRLF dove CR ('\r') sta per Carriage Return e LF ('\n') per Line Feed.
Invece per Linux abbiamo solo LF.
In Java se utilizziamo il metodo newLine() della classe java.io.BufferedWriter questo si comporta in maniere platform dependant, ossia inserisce CRLF su Windows e LF su Linux.
Se da una programma Java su Windows si vuole creare un file di testo con carattere di fine riga compatibile con sistemi Linux allora invece di usare il metodo newLine() occorre esplicitamente fare la write del carattere \n.
In questo modo:
Su windows abbiamo CRLF dove CR ('\r') sta per Carriage Return e LF ('\n') per Line Feed.
Invece per Linux abbiamo solo LF.
In Java se utilizziamo il metodo newLine() della classe java.io.BufferedWriter questo si comporta in maniere platform dependant, ossia inserisce CRLF su Windows e LF su Linux.
Se da una programma Java su Windows si vuole creare un file di testo con carattere di fine riga compatibile con sistemi Linux allora invece di usare il metodo newLine() occorre esplicitamente fare la write del carattere \n.
In questo modo:
BufferedWriter bw=new BufferedWriter(new FileWriter(percorsoFileCopiato));
BufferedReader br = new BufferedReader(new FileReader(percorsoFileDaCopiare));
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
// bw.newLine();
bw.write("\n");
}
br.close();
bw.flush();
bw.close();
Nessun commento:
Posta un commento