La diferencia entre PrintWriter y BufferedWriter

Difference Between Printwriter

BufferedWriter: escribe texto en el flujo de salida de caracteres, almacenando caracteres individuales en búfer para proporcionar una escritura eficiente de caracteres individuales, matrices y cadenas. El carácter obtenido se puede generar mediante el método write (), y luego se puede usar la línea nueva () para envolver la línea. El flujo de caracteres en BufferedWriter debe vaciarse llamando al método flush. Y BufferedWriter solo puede operar en secuencias de caracteres. Si desea operar en un flujo de bytes, use un BufferedInputStream.

PrintWriter: imprime representaciones formateadas de objetos en un flujo de salida de texto. La ventaja de PrintWriter sobre BufferedWriter es que si PrintWriter activa la actualización automática, cuando PrintWriter llama a los métodos println, prinlf o format, los datos del flujo de salida se actualizan automáticamente. PrintWriter puede recibir no solo secuencias de caracteres, sino también secuencias de bytes.



En la programación de Socket, intente reemplazar BufferedWriter con PrintWriter. Estas son las ventajas de PrintWriter:



1. PrintWriter print, el método println puede aceptar cualquier tipo de parámetro, y el método de escritura de BufferedWriter solo puede aceptar caracteres, matrices de caracteres y cadenas



2. El método println de PrintWriter agrega automáticamente una nueva línea, BufferedWriter necesita mostrar la llamada al método newLine

3. El método PrintWriter no genera una excepción. Si le preocupa la excepción, debe llamar al método checkError para ver si ocurre una excepción.

4. El constructor PrintWriter puede especificar parámetros para implementar la actualización automática de la caché (autoflush)



5. PrintWriter se construye más ampliamente.

——————————————————————-

para resumir:

Cuando se usa el método readLine en BufferedReader para recibir el flujo de caracteres en BufferedWriter, dado que readLine devuelve el carácter de línea completa cuando se lee el carácter de nueva línea, el método BufferedWriter usa el método newLine para realizar una operación de nueva línea después de ingresar un carácter. Luego cepille el flujo de personajes. PrintWriter puede iniciar la actualización automática y el método println tiene una operación de nueva línea. Por tanto, el código es más sencillo de implementar que el BufferedWriter.

Tanto PrintWriter como BufferedWriter heredan de java.io.Writer, por lo que muchas de las funciones son las mismas. Sin embargo, PrintWriter proporciona el método println () para escribir caracteres de nueva línea en diferentes plataformas, y BufferedWriter puede establecer el tamaño del búfer de forma arbitraria. OutputStream se puede pasar directamente a PrintWriter (BufferedWriter no puede recibir), como:

|_+_|

O use OutputStreamWriter para convertir OutputStream a Wrtier. Entonces puedes usar BufferedWriter. Los documentos de la API de JDK están escritos con mucha claridad.