estoy usando Java SE 6.¿Hay una API estándar para verificar los separadores de línea en Java?
Mi programa lee varios tipos de archivos que van de dos a UNIX y ASCII a Unicode, y tengo que asegurarse de que los separadores de línea para el archivo de salida coinciden con los archivos de entrada.
La forma en que hago esto es que leo una línea de muestra con la función BufferedReader read() para buscar el primer separador de línea y guardar ese separador de línea en una cadena. De esta manera, puede usarse más adelante siempre que necesite una nueva línea.
He inspeccionado la clase escáner y se dio cuenta de que los posibles separadores de línea pueden incluir los siguientes:
\r\n
\r
\n
\u2028
\u2029
\u0085
¿Hay una función de biblioteca para comprobar si estos personajes? O incluso mejor, ¿ya existe una función de biblioteca para comprobar cómo se ve el separador de línea de la entrada?
¿Hay alguna otra forma de evitar esto?
EDIT: Si es posible, me gustaría utilizar la API estándar de Java en lugar de bibliotecas de terceros, pero todas las sugerencias son bienvenidas.
EDITAR: Solo para aclarar.
1) Los archivos de entrada no dependen de dónde se está ejecutando este programa. Por ejemplo, si estoy ejecutando este programa en Dos, aún puedo obtener un archivo de entrada de Unix.
2) Mi objetivo no es leer cada línea delimitada con separadores de línea, eso es simple. Lo que realmente necesito es escribir un archivo de salida con los mismos separadores de línea que el archivo de entrada. Por ejemplo, si estoy ejecutando este programa en Dos, y obtengo un archivo de entrada de Unix, quiero poder escribir mi archivo de salida con separadores de línea Unix. Es por esto que estoy preguntando si hay una API estándar para detectar separadores de línea basados en archivos de entrada, en lugar de ejecutar el sistema operativo.
Gracias.
"puede parecer artificioso" - Definitivamente no es un caso extremo, por ejemplo, archivos de registro Java Unix con respuestas de mainframe o textos copiados y pegados de diferentes fuentes. Nunca asumiría que un archivo tiene solo un tipo de separador de línea. –