我试图通过套接字从服务器下载图像。我的代码工作正常,但是当我下载图像时,大小是正确的,但图像无法打开。我不知道我做错了什么。任何建议?谢谢通过套接字下载图像java
Socket socket = new Socket(servername, 80);
DataOutputStream bw = new DataOutputStream(new DataOutputStream(socket.getOutputStream()));
bw.writeBytes("GET "+filename+" HTTP/1.1\n");
bw.writeBytes("Host: "+servername+":80\n\n");
DataInputStream in = new DataInputStream(socket.getInputStream());
OutputStream dos = new FileOutputStream("testtttt.jpg");
int count;
byte[] buffer = new byte[2048];
while ((count = in.read(buffer)) != -1)
{
dos.write(buffer, 0, count);
dos.flush();
}
dos.close();
System.out.println("image transfer done");
socket.close();
}
确定的形象是一个JPG,而不是一个PNG?你也可以尝试移除DataOutputStream的双重包装。 –
谢谢你的回复。是的,我确定图片是以JPG格式,我删除了DataOutputStream的双重包装,但它仍然给我看图片和尺寸。它不会打开 – user2993368
不要在循环内冲洗。如果你没有使用缓冲流,它什么也不做,如果你完全无法达到目的。没有理由不在这里使用'URL'和'HttpURLConnection',并完全避免所有的HTTP实现代码。 – EJP