请Java大牛帮忙,关于HTTP文件下载,功能可以实现,但是下载后总是有个别文件不能被删除.

for(inti=0;i<ifrList.size();i++){ImgFavoriteRepositoryifr=ifrList.get(i);try{URLhttpu... for (int i = 0; i < ifrList.size(); i++) {
ImgFavoriteRepository ifr = ifrList.get(i); try { URL httpurl = new URL(ifr.getImgUrl()); fileNames[i] = getFileNameFromUrl(ifr.getImgUrl()); File f = new File(cachePath); if (!f.exists()) { f.mkdirs(); } f = new File(cachePath + fileNames[i]); f.createNewFile(); FileUtils.copyURLToFile(httpurl, f); } catch (Exception e) { e.printStackTrace(); } }
用的是apache的文件工具类
我怀疑是不是被占用或者流没关闭?
展开
 我来答
Stale331x
2013-12-30 · TA获得超过1299个赞
知道小有建树答主
回答量:1276
采纳率:33%
帮助的人:832万
展开全部

import java.io.*;
import java.net.*;
import java.util.Scanner;


public class Test {
private static String fileName="http://localhost/file/1.jpg";
public static void main(String args[]) throws Exception {
URL url=new URL(fileName);
URLConnection uc=url.openConnection();
uc.connect();
HttpURLConnection huc=(HttpURLConnection)uc;
if(huc.getResponseCode()!=HttpURLConnection.HTTP_OK){
//判断是否成功连接到http,如果不能连接则返回
System.out.println("can't connect");
return;
}

File f=new File("D://text.jpg");//把文件复制到D盘的text.jpg中
InputStream in=(uc.getInputStream());//打开输入流
byte[] data=new byte[1024*10];
int l=in.read(data);
if(!f.exists()) f.createNewFile();
FileOutputStream out=new FileOutputStream(f);
while(l!=-1){
out.write(data, 0, l);
l=in.read(data);
}
out.flush();
out.close();
System.out.println("OK");
}
}

自己把源地址修改下

更多追问追答
追问
你这个是一张图,我要下载N张,用循环吗?
追答
有区别吗??不会举一反三??
你就把你要下载的地址放到一个list中不就得了吗??
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式