import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; /** * 通过URL,从网络下载图片 * @author TF */ public class ImageRequest { public static void main(String[] args) throws Exception { //图片的地址 URL url = new URL( "http://a.vpimg1.com/upload/brand/201407/2014071414241844761.jpg"); //得到http链接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //设置请求方法 conn.setRequestMethod("GET"); //设置请求超时时间 conn.setConnectTimeout(5 * 1000); // 通过输入流获取图片数据 InputStream is = conn.getInputStream(); // 得到图片的二进制数据 byte[] data = readInputStream(is); File imageFile = new File("creep.jpg"); FileOutputStream outStream = new FileOutputStream(imageFile); outStream.write(data); outStream.close(); } public static byte[] readInputStream(InputStream inStream) throws Exception { ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = inStream.read(buffer)) != -1) { outStream.write(buffer, 0, len); } inStream.close(); return outStream.toByteArray(); } }
这样,图片就下载下来了,保存在当前的工程下面。刷新一下工程,就能看见。
(2)在java中,通过网络,解析一个网站,得到它的html代码。
/** * 通过URL解析网址,得到html文件 * @author TF */ public class HtmlRequest { public static void main(String[] args) throws Exception { URL url = new URL("http://www.baidu.com"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5 *1000); //通过输入流获取html数据 InputStream is = conn.getInputStream(); //得到html的二进制数据 byte[] data = readInputStream(is); String html = new String(data, "UTF-8"); System.out.println(html); } public static byte[] readInputStream(InputStream instream) throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1 * 1024]; int length = 0; while(-1 != (length = instream.read(buffer))){ baos.write(buffer, 0, length); } instream.close(); return baos.toByteArray(); } }这样,在控制台就能看到解析完成的百度首页的html代码了...