Java编写一下图片下载程序?

Python017

Java编写一下图片下载程序?,第1张

楼上的写的没错,不过感觉太麻烦了,用hutool工具包来写个方法

HttpUtil.downloadFile("https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png", new File("F://demo4/baidu_logo.png"))

第一个参数为百度logo图片,第二个为我本地下载位置,下载结果如图

通过httpclient来爬取网站内容,分析当前内容页中的图片‘规则’

抓取一般都是模拟浏览器访问目标网页,通过返回的页面html代码进行分析自己需要的数据

查找规则,例如你爬取的网页 ,看到当前页面显示的图片格式如下<img src="http://www.baidu.com/img/20101025_user.png">

通过解析爬取的网页源代码(html)进行字符串的操作即可,现在有相应的第三方jar包可以帮你更快的完成这部分工作,例如htmlpaser,获取到对应的地址,然后进行保存或下载。

你可以搜索,java爬虫(httpclient)和htmlpaser做更多的了解。

朋友我还是告诉你思路先:用流的方法,先获取地址,再用 URLConnection 函数获取输入流,有了输入流,之后把数据弄进输出流里。代码如下

public static void main(String[] args) {

Scanner s=new Scanner(System.in)//在显示面板上手动输入的函数

int k=0//配合输出数据用的

System.out.println("请你输入下载地址")

String dz=s.nextLine()://地址如:http...的,把输入的数据放进DZ变量里

URL url=new URL(dz)

URLConnection c=url.openConnection()//返回一个Connection对象。

InputStream in=c.getInputStream()//读取的输入流。

String fname = url.getFile().substring(url.getFile().lastIndexOf("/") + 1)//

"这是一个网站"http://www.111.com/kk/1.mp3",url.getFile().lastIndexOf("/") + 1这句意思是到网站最后一个"/",根据上面的网址/1.mp3,后面再加一位,结果就是1.mp3,它作用是在此字符串中最右边出现的指定子字符串的索引(数字)。

substring这个函数是可以从字符串第几个数字开始并返回一个新的字符串。

这句话的意思是:lastIndexOf("/")+1找到最后一个像"/"字符,然后移一位在哪个位置设一个索引(数字),然后substring是根据这个索引(数字)找到后面那些字符串。

String xxx=fname.substring(fname .lastIndexOf(".")+1)//取文件的后续名(.mp3、.rmvb)之类

System.out.println("输入文件名:")

String bcwj=s.nextLine()

FileOutputStream out=new FileOutputStream("D:/m/"+bcwj+"."+xxx)

System.out.println("开始下载")

while((k=in.read())>=0){

out.write(k)

out.flush()

}

out.close()

in.close()

System.out.println("下载完成")

}