Tutti,java.net.URLConnection.guessContentTypeFromStream e text/plain
sto cercando di identificare i file di testo con il fine riga Mac e, all'interno di un InputStream, in silenzio convertirli in fine riga Windows o Linux (l'importante parte è il personaggio LF, davvero). In particolare, sto lavorando con diverse API che prendono InputStreams e sono bloccate a cercare \ n come newline.
A volte, ottengo file binari. Ovviamente, un file che non è simile al testo non dovrebbe avere questa sostituzione, perché il valore che corrisponde a \ r ovviamente non può essere seguito in silenzio da un \ n senza muovere male le cose.
Sto tentando di utilizzare java.net.URLConnection.guessContentTypeFromStream
e di eseguire solo conversioni di fine riga se il tipo è text/plain. Sfortunatamente, "text/plain"
non sembra essere nella sua gamma di valori di ritorno; tutto quello che ottengo è null
per i miei file di testo flat, ed è probabilmente non sicuro assumere tutti i file non identificabili che possono essere modificati.
Quale libreria migliore (preferibilmente in un repository Maven pubblico e open-source) posso usare per fare questo? In alternativa, come posso far funzionare guessContentTypeFromStream per me? So che sto descrivendo un'applicazione intrinsecamente pericolosa e nessuna soluzione può essere perfetta, ma dovrei semplicemente considerare "null" come probabile "text/plain" e ho semplicemente bisogno di scrivere più codice per cercare prove che non sia 't?
+1 per "gamma". – skaffman