Posted on 2007-01-26 14:04
sugo 阅读(316)
评论(0) 编辑 收藏
实现了基本的网络图片、mp3、影片下载,原理为首先根据要下载的图片(mp3、影片)的url,将它的信息写入一个临时文件。然后再从这个临时文件将信息导入到真正你想要存储的图片(mp3、影片)。第一步为网络到本地,第二步为本地到本地。
//网络到本地代码:
java.net.URL l_url = new java.net.URL("http://localhost/rlzy/photo/"+addition); //图片url地址
java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection();
int randomnum=(int)(Math.random()*100);
System.out.println(randomnum);
File f1=new File(photopath+randomnum);
FileOutputStream o=new FileOutputStream(f1);
l_connection.connect();
java.io.InputStream l_urlStream;
l_urlStream = l_connection.getInputStream();
byte b[]=new byte[1000];
int n;
while( (n=l_urlStream.read(b))!=-1)
{
o.write(b,0,n);
}
o.close();
l_urlStream.close();
//本地到本地
RandomAccessFile random=new RandomAccessFile(f1,"r");
long forthEndPosition=0;
File tfolder1=new File("E:/111/);//存储图片路径
tfolder1.mkdirs();//如果不存在就创建此文件夹,如果没有这个步骤将会出现FileNotFoundException
File f2=new File("e:/111/"+name);
RandomAccessFile random2=new RandomAccessFile(f2,"rw");
random.seek(random.length());
long endPosition=random.getFilePointer();
random.seek(forthEndPosition);
long startPoint=random.getFilePointer();
while(startPoint<endPosition) //开始拷贝文件信息
{ n=random.readByte();
random2.write(n);
startPoint=random.getFilePointer();
}
random2.close();random.close();
f1.delete(); //删除临时文件
程序写了一个简单的GUI界面 ,使其看起来更像一个下载器了。如果提高下载速度还需进一步的学习和研究。有兴趣的朋友可以点击下载研究
http://sugo.gnway.net/test/FreeDown.jar(申请的一个免费二级域名,速度可能不快 :-) ,另外需要sun公司的jre环境,Windows、Linux下均能运行)