Java 打开URL链接,并下载URL中的文件

Java 小程序,打开Url中的链接,并下载链接中所保存的文件。其中利用了common-io.jar中的FileUtils.copyURLToFile(url, file)方法,jar包在附件中。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.FileUtils;

/**
 * 访问Url中的路径,并下载Url中所包含的文件
 * 类功能是先从test.txt中读出一个字符串,然后拼接到URl路径中,
 * 再将此路径中的文件保存
 * @author Logic
 * @email [email protected]
 */
public class AccessURLAndDownloadFile {

	public static void main(String[] args) {
		
		//输入文件的地址
		String fileDir = "D:/test/test.txt";
		
		List<String> fileNameList = readFileToList(fileDir);
		
		for (int i=0; i<fileNameList.size(); i++) {
			String fileName = fileNameList.get(i);
			
			//保存当地文件位置
			String localDir = "D:/test/";
			
			downloadFileFromURL("http://string-db.org/api/tsv/resolve?identifier=" + fileName + "&species=9606 ", localDir, fileName);
		}
	}
	
	/**
	 * 将文件中的内容入读到一个List中
	 * @param fileName
	 * @return
	 */
	public static List<String> readFileToList(String fileName) {
		List<String> fileNameList = new ArrayList<String>();
		FileInputStream fileInputStream = null;
		InputStreamReader inputStreamReader = null;
		BufferedReader bufferedReader = null;
		
		try {
			fileInputStream = new FileInputStream(fileName);
			inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
			bufferedReader = new BufferedReader(inputStreamReader);
			String line = null;
			while((line = bufferedReader.readLine()) != null) {
				fileNameList.add(line.trim());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		if(bufferedReader != null) {
			try {
				bufferedReader.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		/**
		 * 关闭打开的各种流
		 */
		if(inputStreamReader != null) {
			try {
				inputStreamReader.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		if(fileInputStream != null) {
			try {
				fileInputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return fileNameList;
	}
	
	/**
	 * 从URL下载文件
	 * @param url 下载文件的路径
	 * @param file 下载文件的名称
	 * @param dirLocation 保存下载文件的位置
	 * @return
	 */
	public static String downloadFileFromURL(String url, String dirLocation, String fileName) {
		try {
			URL httpUrl = new URL(url);
			File file = new File(dirLocation + fileName);
			file.createNewFile();
			FileUtils.copyURLToFile(httpUrl, file);
			System.out.println("下载文件 " + fileName + "成功!");
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("下载文件 " + fileName + "失败!");
		}
		return null;
	}

}

猜你喜欢

转载自logicluo.iteye.com/blog/2280877