如何根据指定路径从远程服务器上,获取文件,并保存到本地

根据html文件中的src路径(在远程服务器上)
如下地址

找到这个watch.1.3.1.js文件,并保存到本地指定位置上
用java代码实现
详细一点的代码
谢谢各位大神

静态资源可以使用nginx代理来实现,这个最简单了

public void download(String url) {
// 设置文件对象,给定本地相对路径
File file = new File("/opt/bingege/file");
FileOutputStream fop = null;
InputStream in = null;
try {
//设置输出流 要写入的文件
fop = new FileOutputStream(file);
//给定 URL 文件路径,获取文件输入流
in = new FileInputStream(new File(url));
byte[] buffer = new byte[1024];

int len = -1;

while((len = in.read(buffer)) != -1){

fop.write(buffer, 0, len);
}
fop.flush();
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
if(in != null){
in.close();
}
if(fop != null){
fop.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

首先你要知道html文件的URL,然后才能确定“找到这个watch.1.3.1.js文件”的完整路径,得到完整的路径那就简单了。

对HTML文件的分析,和文件的获取,推荐使用 jsoup 框架,我最近就在用,真的很简单。

参考这个代码:

http://www.jb51.net/article/36850.htm

假如是linux服务器,推荐用apache 中的ftp FTPClient、FTPFile、FTPReply jar包可以做得到。

最简单的方法用apache的commons.io:

org.apache.commons.io.FileUtils.copyURLToFile(new URL("http://192.168.3.45/do-upload/component-factory/js/watch.1.3.1.js"), new File("watch.1.3.1.js"));

jsoup解析html也很简单
org.jsoup.Jsoup.parse(String)这个方法就帮你把html解析成一个Document,然后用css语法可以查找你要的元素

string filepath=Server.mapPath("某文件夹名");

string [] filenames=Directory.GetFiles(filepath); //获取该文件夹下面的所有文件名