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;
}
}