我正在尝试在java中编写代码,其中用户提供了一个url链接,程序采用url链接并按原样下载网页并保存在特定位置。同样可以保存为...选项可用网页。
请任何人帮助我
提前致谢
答案 0 :(得分:9)
//示例网址:http://www.novell.com/coolsolutions/tools/downloads/ntradping.zip
import java.io.*;
import java.net.*;
public class UrlDownload {
final static int size = 1024;
public static void fileUrl(String fAddress, String localFileName, String destinationDir) {
OutputStream outStream = null;
URLConnection uCon = null;
InputStream is = null;
try {
URL url;
byte[] buf;
int byteRead, byteWritten = 0;
url = new URL(fAddress);
outStream = new BufferedOutputStream(new FileOutputStream(destinationDir + "\\" + localFileName));
uCon = url.openConnection();
is = uCon.getInputStream();
buf = new byte[size];
while ((byteRead = is.read(buf)) != -1) {
outStream.write(buf, 0, byteRead);
byteWritten += byteRead;
}
System.out.println("Downloaded Successfully.");
System.out.println("File name:\"" + localFileName + "\"\nNo ofbytes :" + byteWritten);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
is.close();
outStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void fileDownload(String fAddress, String destinationDir) {
int slashIndex = fAddress.lastIndexOf('/');
int periodIndex = fAddress.lastIndexOf('.');
String fileName = fAddress.substring(slashIndex + 1);
if (periodIndex >= 1 && slashIndex >= 0 && slashIndex < fAddress.length() - 1) {
fileUrl(fAddress, fileName, destinationDir);
} else {
System.err.println("path or file name.");
}
}
public static void main(String[] args) {
if (args.length == 2) {
for (int i = 1; i < args.length; i++) {
fileDownload(args[i], args[0]);
}
} else {
}
}
}
它正在全力以赴。
答案 1 :(得分:5)
您可以使用Java URL API在URL上获取输入流,然后从中读取输入流并在文件上写出输出流。
答案 2 :(得分:1)
查看HtmlParser。它有一些功能可以帮助您从网页中提取资源。