Todo,java.net.URLConnection.guessContentTypeFromStream y text/plain
Estoy tratando de identificar archivos de texto plano con los finales de línea de Mac y, dentro de un InputStream, en silencio convertirlos a finales de línea de Windows o Linux (el importante parte es el personaje LF, realmente). Específicamente, estoy trabajando con varias API que toman InputStreams y están encerradas para buscar \ n como nuevas líneas.
A veces, obtengo archivos binarios. Obviamente, un archivo que no es de texto no debería tener esta sustitución hecha, porque el valor que le corresponde a \ r obviamente no puede ser seguido silenciosamente por \ n sin alterar las cosas mal.
Estoy intentando usar java.net.URLConnection.guessContentTypeFromStream
y solo estoy realizando conversiones en la línea final si el tipo es texto/normal. Desafortunadamente, "text/plain"
no parece estar en su gama de valores de retorno; todo lo que obtengo es null
para mis archivos de texto planos, y posiblemente no sea seguro suponer que se pueden modificar todos los archivos no identificables.
¿Qué mejor biblioteca (preferiblemente en un repositorio público de Maven y código abierto) puedo usar para hacer esto? Alternativamente, ¿cómo puedo hacer que guessContentTypeFromStream me funcione? Sé que estoy describiendo una aplicación inherentemente peligrosa y ninguna solución puede ser perfecta, pero debería simplemente tratar "nulo" como probable que sea "texto/simple" y simplemente necesito escribir más código para buscar evidencia de que no es ¿t?
+1 para "gama". – skaffman