Posted on 2007-01-26 14:04
sugo 閱讀(322)
評論(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下均能運行)
?????????