欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-23 09:30:40
...

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 logicluo@foxmail.com
 */
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;
	}

}