Файл Java существует по URL - PullRequest
       10

Файл Java существует по URL

2 голосов
/ 24 января 2011

Кто-нибудь знает надежный метод проверки, существует ли файл по URL-адресу в Java?

Попытка проверить, существует ли файл до его загрузки.

(HTTP, кстати).)

Ответы [ 2 ]

1 голос
/ 24 января 2011

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 и повторите описанный выше процесс.

0 голосов
/ 24 января 2011

Это невозможно сделать в общем.Если вы знаете, что URL является локальным URL с протоколом «file:», вы можете преобразовать его в обычный объект File и таким образом проверить его существование.Если протокол «http:» и т. Д., Вы не можете проверить существование, не пытаясь открыть поток.Даже тогда вам нужно интерпретировать ответ (в зависимости от протокола), чтобы узнать, есть ли что-то там.Для HTTP вы, вероятно, получите ответ 404, если файл не найден, но это может быть другой код ответа.Зависит от услуги, к которой вы обращаетесь.

...