PrintWriter包装成打印流就我的理解是把字节流转为字符流吧?可既然输出的是字符流,为什么另一端接收时依然要用inputstream接收字节流然后还要创建个bufferedreader把字节流转成字符流呢
1. 为什么要用PrinterWriter?
因为我们写程序的时候,往Socket里写数据,写的都是文本,都是字符,所以PrinterWriter用于程序员写入数据。因为PrinterWriter是包装的OutputStream,底层实现数据传输的时候,会把我们写入的字符转换成二进制数据,就是字节流,所以传输的时候都是字节流传输。
2. 为什么要用InputStream接收?
上面讲到了,底层传输的时候,都是字节流,所以要用InputStream读取,还要用BufferedReader转换成字符流,也是为了方便程序员读取,可辨识。
如果只是单纯的为了数据传输的话,完全不需要将字节流转换成字节流。