我正在做一项家庭作业,我必须连接到http服务器,并使用套接字编程下载html文件和图像文件。
我做得很好,能够正确下载和编写html和图像文件。但是当我编辑代码以满足家庭作业的要求时(网页必须在本地工作,所以代码被编辑以重写html,图像文件没有被正确写入。
我不记得为下载图像的方法编辑过代码。我刚刚检查了我的文件,当我认为我完成了,图像显示了一个无效的图像。
字节(当我在记事本++中并排打开正确的图像和下载的图像时),字节是相同的。问题是,在下载的图像上,字节被写入一条长行,而在正确的图像中,字节被逐行写入。
尝试了几种不同的方法,但都不起作用。事实上,我发给朋友的一个旧代码(在上面编辑之前)似乎也不起作用。有什么想法吗?
DataInputStream imgIn=new DataInputStream(socket.getInputStream());
DataOutputStream imgOut = new DataOutputStream(new FileOutputStream(host+path));
byte[] byteArr=new byte[1024];
int bytesRead=0,totalBytesRead=0;
while (totalBytesRead<imageSize ){
bytesRead=imgIn.read(byteArr,0,1024);
totalBytesRead+=bytesRead;
imgOut.write(byteArr,0,bytesRead);
imgOut.flush();
}
/* while ((bytesRead = imgIn.read(byteArr)) > 0)
{
imgOut.write(byteArr, 0, bytesRead);
imgOut.flush();
}*/
imgIn.close();
imgOut.close();
}
谢谢你的帮助!
我认为如果这是要求:在本地创建网页。
您不应该只下载文件(htmls、jpegs等),还应该复制目录结构,并且不需要编写单独的代码就可以在本地工作。
希望能有所帮助:-)