设为首页收藏本站language 语言切换
查看: 1480|回复: 0
收起左侧

Java基础:Java中的HTTP文件队列下载

[复制链接]
发表于 2010-2-20 13:58:43 | 显示全部楼层 |阅读模式
<p >许多用户可能会碰到这样的情况:在网站上发现一个很好的资源,但是这个资源是分成了很多个文件存放的,假如想把它保存到本地,只有靠用户点击另存来完成保存,假如资源分了几百甚至上千上万,那简直是个灾难。<p ><p >在Internet上很多的资源分成多个文件存放时,它的文件命名是有一定的规则的;正因如此,我们就可以用程序来完成这个资源的完全下载。<p ><p >1.基础知识<p ><p ><p >在Internet上,我们要下载网站上的某个资源,我们会获得一个URL,它是一个服务器资源定位的描述,下载的过程总是如下步骤:<p ><p >步骤1:客户端发起连接请求一个URL步骤2:服务器解析URL,并将指定的资源返回一个输入流给客户步骤3:客户端接收输入流,将流中的内容存到文件2.网络连接的建立<p ><p >Java提供了对URL访问和大量的流操作的的API,我们可以很轻易的完成对网络上资源的存取,下面的代码段就完成了对一个网站的资源进行访问:<p ><p >......destUrl=“http://www.ebook.com/java/网络编程001.zip“;url=newURL;httpUrl=url.openConnection;//连接指定的网络资源httpUrl.connect;//获取网络输入流bis=newBufferedInputStream);......<p >3.代理的访问<p ><p >Java中通过代理服务器访问外网的方法已经是世人皆知的秘密了。这里就不再多描述了,访问的JAVA代码如下:<p ><p >//设置代理服务器System.getProperties.put;System.getProperties.put;System.getProperties.put;<p >4.网络资源的保存<p ><p >在上节中,我们已经获取了指定网络资源的输入流,接下来我们要完成的就是读取输入流中的所以内容,并将其保存在文件中。示例代码:<p ><p >......fos=newFileOutputStream;ifSystem.out.println;//保存文件while)!=-1)fos.write;......<p ><p >上面的示例代码就将网络资源的内容保存到了本地指定的文件中。<p ><p >5.代码清单<p ><p >importjava.net.;<p >importjava.util.;/<p >pTitle:个人开发的API/p<p >pDescription:将指定的HTTP网络资源在本地以文件形式存放/p<p >pCopyright:Copyright2004/p<p >pCompany:NewSky/p<p >@authorMagicLiao<p >@version1.0<p >/<p >publicclassHttpGet/<p >清除下载列表<p >/<p >publicvoidresetList/<p >增加下载列表项<p ><p >@paramurlString<p >@paramfilenameString<p >/<p >publicvoidaddItem/<p >根据列表下载资源<p >/<p >publicvoiddownLoadByList<p >catch<p >}<p >}if<p >}/<p >将HTTP资源另存为文件<p ><p >@paramdestUrlString<p >@paramfileNameString<p >@throwsException<p >/<p >publicvoidsaveToFilethrowsIOException/<p >设置代理服务器<p ><p >@paramproxyString<p >@paramproxyPortString<p >/<p >publicvoidsetProxyServer/<p >设置认证用户名与密码<p ><p >@paramuidString<p >@parampwdString<p >/<p >publicvoidsetAuthenticator/<p >主方法<p ><p >@paramargvString<p >/<p >publicstaticvoidmain<p >catch}}<p ><p >< align=right></P><p align="center"></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-7 17:59 , Processed in 0.055110 second(s), 22 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表