申明:个人学习总结,仅供参考,欢迎批评指正交流。
/**
*
*/
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();
}
}
}