我已经在这个论坛上查看了所有类似的问题(不仅是这个!)并尝试了所有这些方法,但仍然无法以编程方式下载测试文件: http: //pdfobject.com/markup/examples/full-browser-窗口.html
以下是我尝试下载的测试文件的直接链接。这是一个开放访问的测试pdf文件,因此任何人都可以使用它来测试下载方法。
如何下载此特定文件以使其具有 pdf 扩展名?
我已经在这个论坛上查看了所有类似的问题(不仅是这个!)并尝试了所有这些方法,但仍然无法以编程方式下载测试文件: http: //pdfobject.com/markup/examples/full-browser-窗口.html
以下是我尝试下载的测试文件的直接链接。这是一个开放访问的测试pdf文件,因此任何人都可以使用它来测试下载方法。
如何下载此特定文件以使其具有 pdf 扩展名?
对于下载文件,也许你可以尝试这样的事情:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public final class FileDownloader {
private FileDownloader(){}
public static void main(String args[]) throws IOException{
download("http://pdfobject.com/pdf/sample.pdf", new File("sample.pdf"));
}
public static void download(final String url, final File destination) throws IOException {
final URLConnection connection = new URL(url).openConnection();
connection.setConnectTimeout(60000);
connection.setReadTimeout(60000);
connection.addRequestProperty("User-Agent", "Mozilla/5.0");
final FileOutputStream output = new FileOutputStream(destination, false);
final byte[] buffer = new byte[2048];
int read;
final InputStream input = connection.getInputStream();
while((read = input.read(buffer)) > -1)
output.write(buffer, 0, read);
output.flush();
output.close();
input.close();
}
}
让我给你一个更简短的解决方案,它带有一个名为JSoup的库,BalusC经常在他的答案中使用它。
//Get the response
Response response=Jsoup.connect(location).ignoreContentType(true).execute();
//Save the file
FileOutputStream out = new FileOutputStream(new File(outputFolder + name));
out.write(response.bodyAsBytes());
out.close();
好吧,你现在一定已经猜到了,response.body()
是 pdf 在哪里。您可以使用这段代码下载任何二进制文件。