2020-06-08 20:59:25
PrintWriter没有flush是我在第二个参数写了true,自动的。
如果msg用对象流传的话,文字编码问题会出问题吗?msg里面有中英文
设置autoflush后流的行为是依赖具体实现类的,不一定就是write之后flush,你也没有把PrintWriter关掉,所以应该是没写过去。一般都是要显式调用flush的。
对象流传输的对象是用Java内部的编码的,这个你不用担心,不会乱码的。倒是使用PrintWriter有可能会乱码,因为客户端使用BufferedReader是使用系统默认编码读取二进制数据的。
刚刚用对象流试了一下。
inputLine = (String) in.readObject(); //in为ObjectInputStream
这一句报错java.io.StreamCorruptedException: invalid type code: AC
网络传输用BufferedInputStream和BufferedOutputStream封装一下
ObjectOutputStream out = new ObjectOutputStream(new BufferedInputStream(socket.getOutputStream()));
ObjectInputStream oi = new ObjectInputStream(new BufferedOutputStream(socket.getInputStream()));
2022-10-29 12:47:22