如果是一个字节一个字节的读取的话,可以指定读取长度来读取,先可以用avaliable()方法获取一次发送数据的字节长度,然后再读取定长的字节。
如果是一次性读取字符串,可以用BufferedReader的readline(),这个方法读取到字符串结束。判断方法是readline() 是否等于-1

解决方案 »

  1.   

    dataIn = new BufferedInputStream(scoket.getInputStream());
                while (len < 6) {
                    tmp[tmpLen++] = (byte) dataIn.read();
                    len++;
                }
                //读取前6位的字节,得到后面的字节长度。
                String private_datalen = new String(tmp, 0, tmpLen);
                int size = Integer.parseInt(private_datalen);            byte[] rt = new byte[size];
                dataIn.read(rt);
                for (int i = 0; i < rt.length; i++) {
                    tmp[tmpLen++] = rt[i];
                }