package internet;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class InternetTest {
public static void main(String [] args) {
String urlpath = "http://a.hiphotos.baidu.com/image/pic/item/4034970a304e251fb59344f5a586c9177f3e5352.jpg";
//图片的url
String filePath="f://myfist.jpg";
//图片的保存路径
try {
getImage(urlpath,filePath);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void getImage(String urlpath,String filePath) throws Exception{ //首先得到请求路径,并抛出异常
URL url = new URL(urlpath); //建立url 类对象,抛异常
HttpURLConnection conn =(HttpURLConnection) url.openConnection(); //得到urlConnection对象
conn.setRequestMethod("GET"); //声明请求方式
conn.setConnectTimeout(6*100); //设置连接超时
if(conn.getResponseCode() == 200){
InputStream inputStream = conn.getInputStream(); //得到一个输入流
//从服务端返回数据,相对客户端为流入
byte[] data= readInstream(inputStream); //得到数据
File file = new File(filePath); //创建保存文件
FileOutputStream outputStream = new FileOutputStream(file);//创建一个文件的输出流
outputStream.write(data); //把所有的二进值数据全部写入到我们建好的文件中
outputStream.close(); //关闭输出流
System.out.println("下载完成!");
}
}
//读取流文件的内容
private static byte[] readInstream(InputStream inputStream) throws Exception {
ByteArrayOutputStream byteArrayOutputStream =
new ByteArrayOutputStream(); //创建ByteArrayOutputStream 对象
byte[] buffer = new byte[1024]; //声明缓冲区
int length = -1; //定义读取默认长度
while((length=inputStream.read(buffer))!=-1){
byteArrayOutputStream.write(buffer,0,length);
//把缓存区中输出到内存中
};
byteArrayOutputStream.close(); //关闭输出流
inputStream.close(); //关闭输入流
return byteArrayOutputStream.toByteArray();
//返回这个输出流的字节数组
}
}