Java : URL con ejemplos

URL (Java SE 21 & JDK 21) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de URL.

Nota :


Summary

La URL de clase representa un localizador uniforme de recursos, un puntero a un "recurso" en la World Wide Web. Un recurso puede ser algo tan simple como un archivo o un directorio, o puede ser una referencia a un objeto más complicado, como una consulta a una base de datos o a un motor de búsqueda. (Traducción automática)

Class diagram

final var url = URI.create("https://example.com/java/index.html").toURL();
System.out.println(url); // "https://example.com/java/index.html"
System.out.println(url.getProtocol()); // "https"
System.out.println(url.getHost()); // "example.com"
System.out.println(url.getPath()); // "/java/index.html"

Constructors

URL (String spec)

Obsoleto. Utilice URI.toURL() para construir una instancia de URL. (Traducción automática)

Deprecated.

URL (String protocol, String host, int port, String file)

Obsoleto. Utilice URI.toURL() para construir una instancia de URL. (Traducción automática)

Deprecated.

URL (String protocol, String host, int port, String file, URLStreamHandler handler)

Obsoleto. Uso de (URI, URLStreamHandler) para construir una instancia de URL asociada con un controlador de protocolo personalizado. (Traducción automática)

Deprecated.

URL (String protocol, String host, String file)

Obsoleto. Utilice URI.toURL() para construir una instancia de URL. (Traducción automática)

Deprecated.

URL (URL context, String spec)

Obsoleto. Utilice URI.toURL() para construir una instancia de URL. (Traducción automática)

Deprecated.

URL (URL context, String spec, URLStreamHandler handler)

Obsoleto. Uso de (URI, URLStreamHandler) para construir una instancia de URL asociada con un controlador de protocolo personalizado. (Traducción automática)

Deprecated.

Methods

boolean equals (Object obj)

Compara esta URL para comprobar su igualdad con otro objeto. (Traducción automática)

final var url1 = URI.create("http://example.com/docs/resource1.html").toURL();
final var url2 = URI.create("http://example.com/docs/resource1.html").toURL();

System.out.println(url1.equals(url2)); // true
// Two URLs with hosts are compared case-insensitively.
final var url1 = URI.create("http://example.com/").toURL();
final var url2 = URI.create("HTTP://EXAMPLE.COM/").toURL();

System.out.println(url1.equals(url2)); // true
final var url1 = URI.create("http://example.com/a").toURL();
final var url2 = URI.create("http://example.com/b").toURL();

System.out.println(url1.equals(url2)); // false
// True if the IP addresses are equal.
final var url1 = URI.create("http://example.com").toURL();
final var url2 = URI.create("http://www.example.com").toURL();

System.out.println(url1.equals(url2)); // true

String getAuthority ()

Obtiene la parte de autoridad de esta URL. (Traducción automática)

final var url1 = URI.create("http://www.example.com/docs/resource1.html").toURL();
System.out.println(url1.getAuthority()); // "www.example.com"
System.out.println(url1.getHost()); // "www.example.com"

final var url2 = URI.create("http://user-a@example.com:80/").toURL();
System.out.println(url2.getAuthority()); // "user-a@example.com:80"
System.out.println(url2.getHost()); // "example.com"

final var url3 = URI.create("https://example.com/index.html?query#fragment").toURL();
System.out.println(url3.getAuthority()); // "example.com"
System.out.println(url3.getHost()); // "example.com"

final var url4 = URI.create("file:///~/calendar").toURL();
System.out.println(url4.getAuthority()); // ""
System.out.println(url4.getHost()); // ""

final var url5 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(url5.getAuthority()); // null
System.out.println(url5.getHost()); // ""

final Object getContent ()

Obtiene el contenido de esta URL. (Traducción automática)

final var url = URI.create("http://example.com").toURL();
final var content = url.getContent();

if (content instanceof InputStream is) {
    try (final var reader = new BufferedReader(
            new InputStreamReader(is))) {
        reader.lines().forEach(System.out::println);
    }
}

// Result
// ↓
//<!doctype html>
//<html>
//<head>
//    <title>Example Domain</title>
// ...
//</html>

final Object getContent (Class<?>[] classes)

Obtiene el contenido de esta URL. (Traducción automática)

final var url = URI.create("http://example.com").toURL();
final Class<?>[] classes = {InputStream.class};

final var content = url.getContent(classes);
if (content instanceof InputStream is) {
    try (final var reader = new BufferedReader(
            new InputStreamReader(is))) {
        reader.lines().forEach(System.out::println);
    }
}

// Result
// ↓
//<!doctype html>
//<html>
//<head>
//    <title>Example Domain</title>
// ...
//</html>

int getDefaultPort ()

Obtiene el número de puerto predeterminado del protocolo asociado con esta URL. (Traducción automática)

final var uri1 = URI.create("http://example.com/").toURL();
System.out.println(uri1.getDefaultPort()); // 80
System.out.println(uri1.getPort()); // -1

final var uri2 = URI.create("http://example.com:9999/").toURL();
System.out.println(uri2.getDefaultPort()); // 80
System.out.println(uri2.getPort()); // 9999

final var uri3 = URI.create("https://example.com/").toURL();
System.out.println(uri3.getDefaultPort()); // 443
System.out.println(uri3.getPort()); // -1

final var uri4 = URI.create("ftp://example.com/").toURL();
System.out.println(uri4.getDefaultPort()); // 21
System.out.println(uri4.getPort()); // -1

final var uri5 = URI.create("file:///~/calendar").toURL();
System.out.println(uri5.getDefaultPort()); // -1
System.out.println(uri5.getPort()); // -1

final var uri6 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(uri6.getDefaultPort()); // -1
System.out.println(uri6.getPort()); // -1

String getFile ()

Obtiene el nombre de archivo de esta URL. (Traducción automática)

final var url1 = URI.create("http://www.example.com/docs/resource1.html").toURL();
System.out.println(url1.getFile()); // "/docs/resource1.html"
System.out.println(url1.getPath()); // "/docs/resource1.html"

final var url2 = URI.create("https://example.com/index.html?query#fragment").toURL();
System.out.println(url2.getFile()); // "/index.html?query"
System.out.println(url2.getPath()); // "/index.html"

final var url3 = URI.create("http://user-a@example.com:80/").toURL();
System.out.println(url3.getFile()); // "/"
System.out.println(url3.getPath()); // "/"

final var url4 = URI.create("file:///~/calendar").toURL();
System.out.println(url4.getFile()); // "/~/calendar"
System.out.println(url4.getPath()); // "/~/calendar"

final var url5 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(url5.getFile()); // "file:/home/xxx/sample.jar!/sample.txt"
System.out.println(url5.getPath()); // "file:/home/xxx/sample.jar!/sample.txt"

String getHost ()

Obtiene el nombre de host de esta URL, si corresponde. (Traducción automática)

final var url1 = URI.create("http://www.example.com/docs/resource1.html").toURL();
System.out.println(url1.getAuthority()); // "www.example.com"
System.out.println(url1.getHost()); // "www.example.com"

final var url2 = URI.create("http://user-a@example.com:80/").toURL();
System.out.println(url2.getAuthority()); // "user-a@example.com:80"
System.out.println(url2.getHost()); // "example.com"

final var url3 = URI.create("https://example.com/index.html?query#fragment").toURL();
System.out.println(url3.getAuthority()); // "example.com"
System.out.println(url3.getHost()); // "example.com"

final var url4 = URI.create("file:///~/calendar").toURL();
System.out.println(url4.getAuthority()); // ""
System.out.println(url4.getHost()); // ""

final var url5 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(url5.getAuthority()); // null
System.out.println(url5.getHost()); // ""

String getPath ()

Obtiene la parte de la ruta de esta URL. (Traducción automática)

final var url1 = URI.create("http://www.example.com/docs/resource1.html").toURL();
System.out.println(url1.getFile()); // "/docs/resource1.html"
System.out.println(url1.getPath()); // "/docs/resource1.html"

final var url2 = URI.create("https://example.com/index.html?query#fragment").toURL();
System.out.println(url2.getFile()); // "/index.html?query"
System.out.println(url2.getPath()); // "/index.html"

final var url3 = URI.create("http://user-a@example.com:80/").toURL();
System.out.println(url3.getFile()); // "/"
System.out.println(url3.getPath()); // "/"

final var url4 = URI.create("file:///~/calendar").toURL();
System.out.println(url4.getFile()); // "/~/calendar"
System.out.println(url4.getPath()); // "/~/calendar"

final var url5 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(url5.getFile()); // "file:/home/xxx/sample.jar!/sample.txt"
System.out.println(url5.getPath()); // "file:/home/xxx/sample.jar!/sample.txt"

int getPort ()

Obtiene el número de puerto de esta URL. (Traducción automática)

final var uri1 = URI.create("http://example.com/").toURL();
System.out.println(uri1.getDefaultPort()); // 80
System.out.println(uri1.getPort()); // -1

final var uri2 = URI.create("http://example.com:9999/").toURL();
System.out.println(uri2.getDefaultPort()); // 80
System.out.println(uri2.getPort()); // 9999

final var uri3 = URI.create("https://example.com/").toURL();
System.out.println(uri3.getDefaultPort()); // 443
System.out.println(uri3.getPort()); // -1

final var uri4 = URI.create("ftp://example.com/").toURL();
System.out.println(uri4.getDefaultPort()); // 21
System.out.println(uri4.getPort()); // -1

final var uri5 = URI.create("file:///~/calendar").toURL();
System.out.println(uri5.getDefaultPort()); // -1
System.out.println(uri5.getPort()); // -1

final var uri6 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(uri6.getDefaultPort()); // -1
System.out.println(uri6.getPort()); // -1

String getProtocol ()

Obtiene el nombre del protocolo de esta URL. (Traducción automática)

final var url1 = URI.create("http://www.example.com/docs/resource1.html").toURL();
System.out.println(url1.getProtocol()); // "http"

final var url2 = URI.create("https://example.com/index.html?query#fragment").toURL();
System.out.println(url2.getProtocol()); // "https"

final var url3 = URI.create("file:///~/calendar").toURL();
System.out.println(url3.getProtocol()); // "file"

final var url4 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(url4.getProtocol()); // "jar"

String getQuery ()

Obtiene la parte de consulta de esta URL. (Traducción automática)

final var url1 = URI.create("http://www.example.com/docs/resource1.html").toURL();
System.out.println(url1.getQuery()); // null

final var url2 = URI.create("https://example.com/index.html?query#fragment").toURL();
System.out.println(url2.getQuery()); // "query"

final var url3 = URI.create("https://example.com/index.html?aaa&bbb&ccc").toURL();
System.out.println(url3.getQuery()); // "aaa&bbb&ccc"

final var url4 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(url4.getQuery()); // null

String getRef ()

Obtiene el ancla (también conocida como "referencia") de esta URL. (Traducción automática)

final var url1 = URI.create("http://www.example.com/docs/resource1.html").toURL();
System.out.println(url1.getRef()); // null

final var url2 = URI.create("https://example.com/index.html?query#fragment").toURL();
System.out.println(url2.getRef()); // "fragment"

final var url3 = URI.create("https://example.com/#aaaa").toURL();
System.out.println(url3.getRef()); // "aaaa"

final var url4 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(url4.getRef()); // null

String getUserInfo ()

Obtiene la parte de información de usuario de esta URL. (Traducción automática)

final var url1 = URI.create("http://example.com/").toURL();
System.out.println(url1.getUserInfo()); // null

final var url2 = URI.create("http://user-a@example.com:80/").toURL();
System.out.println(url2.getUserInfo()); // "user-a"

int hashCode ()

Crea un número entero adecuado para la indexación de tablas hash. (Traducción automática)

final var url1 = URI.create("http://example.com/").toURL();
final var url2 = URI.create("http://example.com/").toURL();

System.out.println(url1.hashCode()); // 1575608341
System.out.println(url2.hashCode()); // 1575608341
// Two URLs with hosts are compared case-insensitively.
final var url1 = URI.create("http://example.com/").toURL();
final var url2 = URI.create("HTTP://EXAMPLE.COM/").toURL();

System.out.println(url1.hashCode()); // 1575608341
System.out.println(url2.hashCode()); // 1575608341
final var url1 = URI.create("http://example.com/a").toURL();
final var url2 = URI.create("http://example.com/b").toURL();

System.out.println(url1.hashCode()); // 1575609848
System.out.println(url2.hashCode()); // 1575609849
final var url1 = URI.create("http://example.com").toURL();
final var url2 = URI.create("http://www.example.com").toURL();

System.out.println(url1.equals(url2)); // true
System.out.println(url1.hashCode()); // 1575608294
System.out.println(url2.hashCode()); // 1575608294

static URL of (URI uri, URLStreamHandler handler)

Crea una URL a partir de una URI, como si invocara uri.toURL(), pero asociándola con el URLStreamHandler dado, si está permitido. (Traducción automática)

class DummyURLStreamHandler extends URLStreamHandler {
    @Override
    protected URLConnection openConnection(URL u) {
        System.out.println("dummy : openConnection url = " + u);
        return new URLConnection(u) {
            @Override
            public void connect() {
                System.out.println("dummy : connect!");
            }
        };
    }
}

final var url = URL.of(new URI("http://example.com"),
        new DummyURLStreamHandler());
System.out.println(url); // "http://example.com"

final var connection = url.openConnection();
connection.connect();

// Result
// ↓
//dummy : openConnection url = http://example.com
//dummy : connect!

URLConnection openConnection ()

Devuelve una instancia de URLConnection que representa una conexión al objeto remoto al que hace referencia la URL. (Traducción automática)

final var url = URI.create("http://example.com").toURL();

final var connection = url.openConnection();
try (final var reader = new BufferedReader(
        new InputStreamReader(connection.getInputStream()))) {
    reader.lines().forEach(System.out::println);
}

// Result
// ↓
//<!doctype html>
//<html>
//<head>
//    <title>Example Domain</title>
// ...
//</html>

URLConnection openConnection (Proxy proxy)

Igual que openConnection(), excepto que la conexión se realizará a través del proxy especificado; Los controladores de protocolo que no admiten el proxy ignorarán el parámetro de proxy y establecerán una conexión normal. (Traducción automática)

final var url = URI.create("http://example.com").toURL();
final var proxy = new Proxy(Proxy.Type.HTTP,
        new InetSocketAddress("proxy.example.com", 8080));

final var connection = url.openConnection(proxy);
try (final var reader = new BufferedReader(
        new InputStreamReader(connection.getInputStream()))) {
    reader.lines().forEach(System.out::println);
}

// Result
// ↓
//<!doctype html>
//<html>
//<head>
//    <title>Example Domain</title>
// ...
//</html>

final InputStream openStream ()

Abre una conexión a esta URL y devuelve un InputStream para leer desde esa conexión. (Traducción automática)

final var url = URI.create("http://example.com").toURL();
try (final var reader = new BufferedReader(
        new InputStreamReader(url.openStream()))) {
    reader.lines().forEach(System.out::println);
}

// Result
// ↓
//<!doctype html>
//<html>
//<head>
//    <title>Example Domain</title>
// ...
//</html>

boolean sameFile (URL other)

Compara dos URL, excluyendo el componente de fragmento. (Traducción automática)

final var url1 = URI.create("http://example.com/").toURL();
final var url2 = URI.create("http://example.com/").toURL();

System.out.println(url1.sameFile(url2)); // true
// Compares two URLs, excluding the fragment component.
final var url1 = URI.create("http://example.com/#aaa").toURL();
final var url2 = URI.create("http://example.com/#bbb").toURL();

System.out.println(url1.sameFile(url2)); // true
final var url1 = URI.create("http://example.com/?aaa").toURL();
final var url2 = URI.create("http://example.com/?bbb").toURL();

System.out.println(url1.sameFile(url2)); // false
// Two URLs with hosts are compared case-insensitively.
final var url1 = URI.create("http://example.com/").toURL();
final var url2 = URI.create("HTTP://EXAMPLE.COM/").toURL();

System.out.println(url1.sameFile(url2)); // true
final var url1 = URI.create("http://example.com/a").toURL();
final var url2 = URI.create("http://example.com/b").toURL();

System.out.println(url1.sameFile(url2)); // false
// True if the IP addresses are equal.
final var url1 = URI.create("http://example.com/").toURL();
final var url2 = URI.create("http://www.example.com/").toURL();

System.out.println(url1.sameFile(url2)); // true

static void setURLStreamHandlerFactory (URLStreamHandlerFactory fac)

Establece URLStreamHandlerFactory de una aplicación. (Traducción automática)

class DummyURLStreamHandler extends URLStreamHandler {
    @Override
    protected URLConnection openConnection(URL u) {
        System.out.println("dummy : openConnection url = " + u);
        return new URLConnection(u) {
            @Override
            public void connect() {
                System.out.println("dummy : connect!");
            }
        };
    }
}

URL.setURLStreamHandlerFactory(protocol -> {
    System.out.println("createURLStreamHandler! : " + protocol);
    return new DummyURLStreamHandler();
});

final var url = URI.create("http://example.com/").toURL();
final var connection = url.openConnection();
connection.connect();

// Result
// ↓
//createURLStreamHandler! : http
//dummy : openConnection url = http://example.com/
//dummy : connect!

String toExternalForm ()

Construye una representación de cadena de esta URL. (Traducción automática)

final var url1 = URI.create("http://www.example.com/docs/resource1.html").toURL();
System.out.println(url1.toExternalForm()); // "http://www.example.com/docs/resource1.html"

final var url2 = URI.create("https://example.com/index.html?query#fragment").toURL();
System.out.println(url2.toExternalForm()); // "https://example.com/index.html?query#fragment"

final var url3 = URI.create("file:///~/calendar").toURL();
System.out.println(url3.toExternalForm()); // "file:/~/calendar"

final var url4 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(url4.toExternalForm()); // "jar:file:/home/xxx/sample.jar!/sample.txt"

String toString ()

Construye una representación de cadena de esta URL. (Traducción automática)

Please see toExternalForm().

Note : Is there a semantic difference between toExternalForm and toString on java.net.URL? - Stack Overflow

URI toURI ()

Devuelve un URI equivalente a esta URL. (Traducción automática)

final var url1 = URI.create("http://www.example.com/docs/resource1.html").toURL();
System.out.println(url1.toURI()); // "http://www.example.com/docs/resource1.html"

final var url2 = URI.create("https://example.com/index.html?query#fragment").toURL();
System.out.println(url2.toURI()); // "https://example.com/index.html?query#fragment"

final var url3 = URI.create("file:///~/calendar").toURL();
System.out.println(url3.toURI()); // "file:/~/calendar"

final var url4 = URI.create("jar:file:/home/xxx/sample.jar!/sample.txt").toURL();
System.out.println(url4.toURI()); // "jar:file:/home/xxx/sample.jar!/sample.txt"
// Escape.
final var url = URI.create("http://example.com/a%20b%20c/").toURL();
System.out.println(url.toURI()); // "http://example.com/a%20b%20c/"
System.out.println(url.toURI().getPath()); // "/a b c/"

Related posts

To top of page