Saltar al contenido

Java: diferencia entre PrintStream y PrintWriter

Después de indagar en diferentes repositorios y sitios de internet finalmente nos hemos encontrado la resolución que te mostraremos ahora.

Esto puede sonar frívolo, pero PrintStream imprime a un OutputStreamy PrintWriter imprime a un Writer. Ok, dudo que obtenga algún punto por decir lo obvio. Pero hay más

Entonces, ¿cuál es la diferencia entre un OutputStream y un Writer? Ambos son flujos, con la principal diferencia de ser un OutputStream es un flujo de bytes mientras que un Writer es una corriente de caracteres.

Si una OutputStream trata con bytes, ¿qué pasa con PrintStream.print(String)? Convierte caracteres en bytes utilizando la codificación de plataforma predeterminada. El uso de la codificación predeterminada generalmente es algo malo, ya que puede generar errores al pasar de una plataforma a otra, especialmente si está generando el archivo en una plataforma y consumiéndolo en otra.

Con un Writernormalmente especifica la codificación a usar, evitando cualquier dependencia de la plataforma.

¿Por qué molestarse en tener un PrintStream en el JDK, ya que la intención principal es escribir caracteres y no bytes? PrintStream es anterior a JDK 1.1 cuando se introdujeron los flujos de caracteres de Lector/Escritor. Me imagino que Sun habría desaprobado PrintStream aunque sólo sea por el hecho de que es tan ampliamente utilizado. (Después de todo, no querrá que cada llamada System.out para generar una advertencia de API obsoleta! Además, cambiando el tipo de PrintStream para PrintWriter en los flujos de salida estándar habría roto las aplicaciones existentes).

Desde JDK 1.4 es posible especificar la codificación de caracteres para un PrintStream. Por lo tanto, las diferencias entre PrintStream y PrintWriter son solo sobre el comportamiento de descarga automática y que un PrintStream no puede envolver un escritor.

Los escritores como PrintWriter son para salida de texto, las secuencias son para salida binaria. Los escritores manejan las cosas del juego de personajes por ti. Las transmisiones no lo hacen porque se supone que no desea ese tipo de conversión, lo que estropearía sus datos binarios y usaría un escritor si lo hiciera.

Si te apasiona la informática, eres capaz de dejar un escrito acerca de qué le añadirías a este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *