tinguo002

 

java下载网页内容和网络图片

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class UrlResource {

    
public static void main(String[] args){
        
try {
            System.out.println(UrlResource.getUrlDetail(
"http://www.baidu.com",true));
            saveUrlFile(
"http://www.baidu.com/img/baidu_jgylogo3.gif""D:\\1.gif");
        }
 catch (Exception e) {
            e.printStackTrace();
        }

    }

    
    
//获取网络文件,转存到fileDes中,fileDes需要带文件后缀名
    public static void saveUrlFile(String fileUrl,String fileDes) throws Exception
    
{
        File toFile 
= new File(fileDes);
        
if (toFile.exists())
        
{
//            throw new Exception("file exist");
            return;
        }

        toFile.createNewFile();
        FileOutputStream outImgStream 
= new FileOutputStream(toFile);
        outImgStream.write(getUrlFileData(fileUrl));
        outImgStream.close();
    }

    
    
//获取链接地址文件的byte数据
    public static byte[] getUrlFileData(String fileUrl) throws Exception
    
{
        URL url 
= new URL(fileUrl);
        HttpURLConnection httpConn 
= (HttpURLConnection) url.openConnection();
        httpConn.connect();
        InputStream cin 
= httpConn.getInputStream();
        ByteArrayOutputStream outStream 
= new ByteArrayOutputStream();
        
byte[] buffer = new byte[1024];
        
int len = 0;
        
while ((len = cin.read(buffer)) != -1{
            outStream.write(buffer, 
0, len);
        }

        cin.close();
        
byte[] fileData = outStream.toByteArray();
        outStream.close();
        
return fileData;
    }

    
    
//获取链接地址的字符数据,wichSep是否换行标记
    public static String getUrlDetail(String urlStr,boolean withSep) throws Exception
    
{
        URL url 
= new URL(urlStr);
        HttpURLConnection httpConn 
= (HttpURLConnection)url.openConnection();
        httpConn.connect();
        InputStream cin 
= httpConn.getInputStream();
        BufferedReader reader 
= new BufferedReader(new InputStreamReader(cin,"UTF-8"));
        StringBuffer sb 
= new StringBuffer();
        String rl 
= null;
        
while((rl = reader.readLine()) != null)
        
{
            
if (withSep)
            
{
                sb.append(rl).append(System.getProperty(
"line.separator"));
            }

            
else
            
{
                sb.append(rl);
            }

        }

        
return sb.toString();
    }

    
}

// 禁止图像缓存
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);


文章详细参考:http://blog.csdn.net/pandakong/article/details/7430844


欢迎大家访问我的个人网站 萌萌的IT人

posted on 2014-08-04 18:38 一堣而安 阅读(1478) 评论(0)  编辑  收藏 所属分类: java


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜