日期:2014-05-20  浏览次数:20679 次

初学者遇到个问题,期待大神解答
我写了一个文件上传的小东西,用的是socket,客户端这边我用printWriter写出一些要上传的文件信息,之后要传文件时,用OutputStream直接写的字节流出去。服务一端,我先用bufferedReader读取上传上来的文件信息,之后用InputStream 直接读取字节流信息。

但是我遇到问题了,用printWriter写字符信息出去时,服务器接收的到。可是一用字节流就收不到数据了,要关闭上传文件的socket 服务端就显示-1信息读完了,要是不关闭,服务器就等着。我实在想不通,希望有大神帮我解答,我明天今天白天下午回帖,谢谢!!

------解决方案--------------------
用InputStream,然后再用BufferedReader的方式,很容易导致问题,有可能信息已经被缓存了,从InputStream可能就读取不到。你这种情况建议全部采用字节流。或者非上传的时候用字符流,等到要上传文件的时候,重新开一个端口采用字节流的方式,应该可以解决。