Java socket 文件传输中遇到的问题,望高手解答!

首先,我有一个客户端与一个服务器。服务器发送文件,客户端接收。已知服务器端的文件大小为:10000字节。客户端使用如下方法接收文件并将文件写入本地(假设服务器已经将文件发... 首先,我有一个客户端与一个服务器。服务器发送文件,客户端接收。
已知服务器端的文件大小为:10000字节。
客户端使用如下方法接收文件并将文件写入本地(假设服务器已经将文件发出):
byte[] buffer=new byte[1024];

private DataInputStream myDataInputStream = new DataInputStream(new

BufferedInputStream(mySocket.getInputStream()));

private FileOutputStream myFileOutputStream = new FileOutputStream(new File("C\\:test.png"));

public void getFile()
{
int count=0;
int all=0;
do
{
count=myDataInputStream.read(buffer,0,buffer.length);
myFileOutputStream.write(buffer,0,count);
all+=count;//记录一共接收了多少文件
}
while(count>-1);
}

可是最后all的值为9999,并且getFile()报出了数组越界异常。

请问该如何解决这个问题?
展开
 我来答
playboy5210
2010-12-18 · TA获得超过618个赞
知道小有建树答主
回答量:265
采纳率:100%
帮助的人:155万
展开全部
你试试把do while 换成while用,我不推荐用do while。do while是只先做后加。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式