Java BufferedReader, escribe algo diferente de lo que lee
-
07-07-2019 - |
Pregunta
analicé un texto (código CAL) con BufferedReader y BufferedWriter en Java, desafortunadamente, líneas que escribí en rojo y escribí con outStream.write (línea); ha cambiado, mira las capturas de pantalla:
http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png h ** p: //uploadz.eu/images/c03hgkrgrmit2ij2mug.png
como ve, algunos caracteres especiales cambiaron las líneas, aunque no pretendía cambiarlas.
por lo que sé, Bufferedwriter / Reader debería funcionar en Unicode por defecto.
Solución
Bueno, BufferedWriter
y BufferedReader
están codificando agnósticamente, nunca se ocupan de las codificaciones reales, ya que solo almacenan los lectores y escritores existentes.
Ahora FileWriter
y FileReader
usan la codificación predeterminada del sistema (urgh). Para solucionar esto, generalmente debe usar un par InputStream
/ InputStreamReader
o OutputStream
/ OutputStreamWriter
(posiblemente envuelto en un BufferedReader
/ BufferedWriter
) y especifique la codificación explícitamente.
No has dicho lo que realmente estás leyendo, ¿es un archivo? ¿Conoces la codificación del archivo?
Otros consejos
Debería conocer la codificación si va a tratar el contenido como texto (Cadena) o, cuando la copia es su objetivo, o tratar el contenido como una matriz de bytes.