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 :
- Este artículo puede utilizar software de traducción para su comodidad. Consulte también la versión original en inglés.
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)
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/"