C++字节流含有一结束符转换java字符流,规定字节是10个,如果不到10字节就在最后的字节处加一个c++的字节结束符(或者是字符结束符,我不清楚),请问这个socket的字节流过来,我怎么转换成java的String字符?

解决方案 »

  1.   

    byte[]->byte[]->char[]
     C++      JAVA
      

  2.   

    byte[] param_byte = new byte[10];
    i=inStream.read(param_byte, 0, 10);
    license = new String(param_byte);
    直接这么收,会有乱码,因为c++发送的可能是7个字节加/0 的结束符,后面就是乱码
      

  3.   

    那就收完判断一下,扫一遍不就OK了?实在不行你就1个1个字节收,OK?
      

  4.   

    解决了,用老方法,先传一个字节表示长度,我读一个字节,知道长度后,安长度再读字节数。难道只有这种方法,传10个字节内的变长字符串,就是有可能是7个 8个 或者9个 的??java 大家都是这么做的吗?先传长度