socket通信中我定义了一个这样的InputStream
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
为什么我用
br.read();的时候可以读出65533,32364,32779等等这么大的数,不是0-255之间的么?

解决方案 »

  1.   

    看你的程序,socket是一个子进程,BufferedReader是定义一个字符流缓冲区,new InputStreamReader(socket.getInputStream())是获得父进程到子进程的输入流,并将字节流转化成字符流形式,
    是这样,read()一次读取一个字节的内容,将每次读取的内容添加到缓冲区中,然后把缓冲区的内容输出就不是每次只输出一个字节了内容了,是一个连贯的,
    打个比方,组装一台机器,每次拿一个部件 ,最终出来的就是个机器了,不知道这样是否恰当!!
      

  2.   

    先说的有点问题,不好意思,你试试用readLine()读一下,一般的时候用read()都是将读到的内容放入一个字节数组,然后new String(buf,0,length);输出。buf为那个字节数组
      

  3.   

    你这个不好说啊,,,只看关键代码怎么可以了,,这个好像是做socket网络编程的吧,,那么它所能读取的数据是来自终端的