按照字节流可以传送任何类型的文件,但在接受方怎样判断文件传送是否结束?必须要设置相应的结束标志,并且边接受边检验是否结束吗?读取文件时 while((nbyteread=input.read(data))!=-1) 
              str=str+new String(data,0,nbyteread)
即可判断;读取网络数据流时也有类似的方法吗?

解决方案 »

  1.   

    你可以while((nbyteread=socketinputstream.read(data))!=-1)
    来读取完全所有的数据,但是就不能转换成为字符串了。其实你传送文件也完全不应该
    new String出来
      

  2.   

    传送文件确实通过字节流就可以实现。即:从服务器端读文件得到字节流,从Socket发出;
        客户端从Socket中都字节流,在存贮到文件中但现在我的服务器端程序中,对于读文件得到的字节流,若使用
          while((nbyteread=input.read(data))!=-1) 
              str=str+new String(data,0,nbyteread)
    转到字符串缓冲区中,再将str.getByte()发送,此时结果正确!若将读取文件得到的字节流直接从Socket中发出,则客户端接受错误结果!并且,若将一个字符串GetByte(),ToString(),就和以前的字符串不一样!为什么?