URL文件中存在Java文件

时间:2011-01-24 03:31:16

标签: java file url exists

有人知道一种可靠的方法,用于查看URL中是否存在文件?

在下载之前尝试查看该文件是否存在。

(HTTP,顺便说一句)

3 个答案:

答案 0 :(得分:1)


URL url = new URL ( some_url );
URLConnection connection = url.openConnection();

connection.connect();

// Cast to a HttpURLConnection
if ( connection instanceof HttpURLConnection)
{
   HttpURLConnection httpConnection = (HttpURLConnection) connection;

   int code = httpConnection.getResponseCode();

   // do something with code .....
}
else
{
   System.err.println ("error - not a http request!");
}

Usually HTTP error codes of 2xx represent success and 3xx for moved/redirection

如果您收到'3xx'错误,则回复包含URI: <url> String CrLf形式的一个或多个标题行,使用此新url并重复上述过程。

答案 1 :(得分:1)

文件存在可以使用的JAVA URI:

Files.exists(Paths.get(URI))

但是该解决方案不适用于HTTP协议(URL)

相反,您可以使用下面的代码片段来验证 http:// file://

的文件是否存在
    try {
    InputStream openConnection = URI.create("https://your.domain.p1/path/1233/file.doc").toURL().openStream();
    } catch (Exception ex) {
        System.out.println(" invalid resource ");
    }

答案 2 :(得分:0)

一般不可能这样做。如果您知道URL是具有“file:”协议的本地URL,则可以将其转换为常规File对象并以此方式检查其存在。如果协议是“http:”等,则无法在不尝试打开流的情况下检查是否存在。即使这样,你也需要解释响应(以协议依赖的方式),以便知道是否存在某些东西。对于HTTP,如果找不到文件,您可能会得到404响应,但它可能是另一个响应代码。取决于您正在访问的服务。