java中URL下载资源

申明:个人学习总结,仅供参考,欢迎批评指正交流。

/**
 *
 */
package com.XXX.downloader;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import com.XXX.utils.Constant;

/**
 * @author 
 *
 */
public class DownloadByUrl {

    private static URLConnection mConnection;
    private static String mFilePath;

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        initialize();
        DownloadToFile();
//        DownloadToString();
    }

    private static void initialize() {
        // TODO Auto-generated method stub
        //1.定义下载路径
        String mPath = Constant.HOST;
        //2.定义存储目录文件
        mFilePath = "D:\\usersDate\\download.txt";
        File mFile = new File(mFilePath);
        try {//3.定义URL对象
            URL mUrl = new URL(mPath);
            //4.定义cnnection对象
            mConnection = mUrl.openConnection();
            //5.定义链接超时和读取超时
            mConnection.setConnectTimeout(Constant.CONNECT_TIMEOUT);
            mConnection.setReadTimeout(Constant.READ_TIMEOUT);
            mConnection.connect();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     * 下载赋给字符串
     * */
    private static void DownloadToString() {
        // TODO Auto-generated method stub
        InputStream mInputStream = null;
        StringBuffer mBuffer = new StringBuffer();
        try {//6.读取输入流
            mInputStream = mConnection.getInputStream();
            //7.utf-8的格式将字节流转换为字符流
            InputStreamReader mStreamReader = new InputStreamReader(mInputStream, "utf-8");
            //8.定义缓冲区
            BufferedReader mBufferedReader = new BufferedReader(mStreamReader);
            String str = null;
            //9.从缓冲区写入数据到stringbuffer
            while ((str = mBufferedReader.readLine()) != null){
                mBuffer.append(str);
            }
            mInputStream.close();
            mStreamReader.close();
            mBufferedReader.close();
            System.out.println("mBuffer = " + mBuffer);

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     *
     * 下载写入到文件
     * */
    private static void DownloadToFile() {
        // TODO Auto-generated method stub
        InputStream mInputStream = null;
        String str = null;
        StringBuffer mStringBuffer = new StringBuffer();
        try {//6.读取字节输入流
            mInputStream = mConnection.getInputStream();
            //7.定义文件写入对象
            FileWriter mFileWriter = new FileWriter(mFilePath);
            //8.将字节流转换成字符流
            InputStreamReader mInputStreamReader = new InputStreamReader(mInputStream, "utf-8");
            BufferedReader mBufferedReader = new BufferedReader(mInputStreamReader);
            //9.将字符流写入到stringbuffer
            while ((str = mBufferedReader.readLine()) != null) {
                mStringBuffer.append(str);
            }
            //10.将字符数据写入到文件
            mFileWriter.write(mStringBuffer.toString());
            mInputStream.close();
            mFileWriter.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值