Come arrivare EOL carattere di qualsiasi tipo di file in java

Sto cercando di trovare il EOL carattere di un file. Ho provato il seguente frammento:

java.io.FileInputStream inputStream = null;  
inputStream=new java.io.FileInputStream (inputFile.trim());
java.util.Properties p = new java.util.Properties(System.getProperties());  
p.load(inputStream);  
System.setProperties(p);  
String lineSeperator=System.getProperties().getProperty("line.separator");  
System.out.println("--"+lineSeperator);

Il risultato che io sto qui è sempre \r\n, Anche se sto leggendo un Linux nato file dove delimitatore deve essere \n.

Che cosa sto facendo di sbagliato ?

Questo codice è solo la lettura di un file di proprietà e prendendo il valore della proprietà “.separatore” dal file o proprietà di sistema, se non è presente. In realtà, non guardare le terminazioni di riga del file.
Rilevare FINE LINEA (EOL) in File con Java gist.github.com/goxr3plus/6923c59b008113d671e06e2787bccd99

OriginaleL’autore justin3250 | 2012-01-23

2 Replies
  1. 9

    System.getProperty("line.separator") restituisce il valore predefinito separatore di riga del tuo sistema operativo. Non ha nulla a che fare con ciò che il separatore di riga utilizzata da un determinato file.

    Trovare, aprire il file come un flusso di caratteri, e scorrere i caratteri fino a trovare '\r' o '\n'. Se si trova '\n' primo, si dispone di un file unix. Se si trova '\r' seguita da '\n', si dispone di un file di windows. Se si trova '\r' non seguita da '\n', avete un vecchio Mac file.

    Questo, naturalmente, presuppone che il file è un file di testo, in primo luogo, che un singolo tipo di EOL è utilizzato nel file, e che si sappia che la codifica del file. Se non si conosce la codifica, è possibile utilizzare lo stesso algoritmo e utilizzare un flusso di byte invece di un flusso di caratteri.

    Di notare che questo è irrilevante, la maggior parte del tempo, dal momento che Java Api che leggere un file riga per riga, e gestire tutte le combinazioni di caratteri di a capo proprio bene.

    bella spiegazione, ma io sono ancora nuovo di java in modo u può spiegare questo con un pezzo di snippet
    Leggi il Java IO esercitazione: docs.oracle.com/javase/tutorial/essential/io
    Grazie mille.In realtà l’ha fatto prima di leggere questo link. grazie comunque
    Abbiamo bisogno di un po ‘ di codice sir. Ho bisogno di leggere il file e trovare se EOL (“\r”,”n” o “\r\n”) . Avrà un solo EOL . Sto raggiungendo con carattere di flusso, ma non a \r o \n viene stampato.

    OriginaleL’autore JB Nizet

  2. 1

    Thats perché la lettura di OS relative proprietà. Se si esegue questo programma in windows e, anche se il file è stato creato su linux, si otterrà \r\n come separatore di linea. Per trovare la fine della riga nel file di input, è necessario trovare un altro modo… forse espressione regolare può aiutare.

    OriginaleL’autore Shekhar

Lascia un commento