2016年11月1日火曜日

java HTTP 协议下的文件下载

java HTTP 协议下的文件下载

1. 建立HTTP的链接,返回输入流。
2. 读取输入流,写入输出流。


import java.net.*;
import java.io.*;
class demo{
public static void main(String[] args) {
HttpUtils hu = new HttpUtils("http://bizingeinoutetyou.com/bizinkisya/wp-content/uploads/2015/04/kiritanimirei_i04.jpg");
hu.saveImageToDisk();
}
}

class HttpUtils{
// private static String url_path = "http://bizingeinoutetyou.com/bizinkisya/wp-content/uploads/2015/04/kiritanimirei_i04.jpg";
private static String url_path ;
public HttpUtils(String url_path){
this.url_path = url_path;
}

public void saveImageToDisk(){
InputStream inputstream = getInputStream();
FileOutputStream fileoutputstream = null;
byte[] buff = new byte[1024];
int len = 0;
try{
fileoutputstream = new FileOutputStream("test.jpg");
while((len = inputstream.read(buff)) != -1){
fileoutputstream.write(buff,0,len);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(inputstream != null){
try{
inputstream.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(fileoutputstream != null){
try{
fileoutputstream.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}


public static InputStream getInputStream(){
InputStream inputstream = null;
HttpURLConnection httpurlconnection = null;
try{
URL url = new URL(url_path);
httpurlconnection = (HttpURLConnection)url.openConnection();
httpurlconnection.setConnectTimeout(3000);
httpurlconnection.setDoInput(true);
httpurlconnection.setRequestMethod("GET");
int responseCode = httpurlconnection.getResponseCode();
if(responseCode == 200){
inputstream = httpurlconnection.getInputStream();
}
System.out.println(url.getFile());
System.out.println(httpurlconnection.getResponseCode());
}catch(MalformedURLException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
return inputstream;
}
}

0 件のコメント: