如果具有URL的远程服务器上存在文件,我如何检查Java?如果是,则下载文件。
这是我的代码示例 - 它打开指定的URL,然后创建I / O流以复制URL指定的文件。但最终它没有按照预期的那样发挥作用。
URL url = new URL(" //Here is my URL");
url.openConnection();
InputStream reader = url.openStream();
FileOutputStream writer = new FileOutputStream("t");
byte[] buffer = new byte[153600];
int bytesRead = 0;
while ((bytesRead = reader.read(buffer)) > 0)
{
writer.write(buffer, 0, bytesRead);
buffer = new byte[153600];
}
writer.close();
reader.close();
答案 0 :(得分:2)
这样做
public static boolean exists(String URLName){
try {
HttpURLConnection.setFollowRedirects(false);
// note : you may also need
// HttpURLConnection.setInstanceFollowRedirects(false)
HttpURLConnection con =
(HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
答案 1 :(得分:1)
向服务器发送头部请求以检查是否存在文件。
import java.net.*;
import java.io.*;
public static boolean fileExists(String URL){
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("HEAD");
if(con.getResponseCode() == HttpURLConnection.HTTP_OK)
return true;
else
return false;
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
答案 2 :(得分:0)
如果文件不存在,url.openConnection()将提示FileNotFoundException,你可以捕获它。除了你的代码似乎没问题,虽然在我的视图中使用BufferedInputStream / BufferedOuputStream并按字节读/写会使它更清晰。