你看到我写的程序了,当然是用InputStreamReader构造的了 PushbackReader bis = new PushbackReader(new BufferedReader(new InputStreamReader(socket.getInputStream()),socket.getReceiveBufferSize()));读 汉字+数字的时候就是出错,我上面的程序以及结果写得很清楚了
你用BufferedReader读取,不用PushbackReader试试。另外你是怎样解析的?
程序段改为 BufferedReader bis = new BufferedReader(new InputStreamReader(socket.getInputStream()),socket.getReceiveBufferSize());
28003和65533,请问如何解决该问题?谢了!
(可从socket读取字节流,基本上一个汉字是3个byte),怎么做?谢了
PushbackReader bis = new PushbackReader(new BufferedReader(new InputStreamReader(socket.getInputStream()),socket.getReceiveBufferSize()));读 汉字+数字的时候就是出错,我上面的程序以及结果写得很清楚了
BufferedReader bis = new BufferedReader(new InputStreamReader(socket.getInputStream()),socket.getReceiveBufferSize());
int c;
while (true) {
c=bis.read();
if (c==-1) {
break;
}
else{
System.out.println(c);
}
}
输出结果还是不对
输入 你1,你2,结果均为
28003
65533
0
你 的结果为
28003
65533
你a的结果为
28003
29180
0注:每次输入后(比如输入 你a),程序发送数据时会在字符串后加入ascii值0作为一次传输的结束.你说的解析?解析什么?
InputStreamReader 对象不就是从流中读取字符数据作为unicode字符吗