上一篇我们说到了多线程实现文件上传,接下来继续说文件的下载
和上一篇的思路差不多,首先同样是要考虑多线程是对那一端的多线程
因为是多个客户端同时下载服务器端的文件,所以还是对服务器端的多线程
还是先编写好客户端,先要接收服务器端的数据,创建读取服务器端的文件的读取流,然后将读取的内容写入到本地文件,创建向客户端写入文件的写入流,最后输出下载成功
Socket socket =new Socket(InetAddress.getByName("10.0.185.66"),12345);
//把下载的图片放到统一的目录下
File file=new File("pics");
if (!file.exists()) {
file.mkdir();
}
int num=0;
File f=new File(file,socket.getInetAddress().getHostAddress()+(++num)+".jpg");
while (f.exists()) {
f=new File(file,socket.getInetAddress().getHostAddress()+(++num)+".jpg");
}
//创建读取服务器端的文件的读取流
InputStream in=socket.getInputStream();
//创建向客户端写入文件的写入流
FileOutputStream fos=