1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.net.URL import java.io.BufferedReader import java.io.InputStreamReader fun main() { val url = URL("https://www.jesusninoc.com") // Reemplaza con la URL que deseas conectar val inputStream = url.openStream() val bufferedReader = BufferedReader(InputStreamReader(inputStream)) bufferedReader.useLines { lines -> lines.forEach { line -> println(line) } } } |
Explicación línea a línea:
import java.net.URL
: Importa la claseURL
del paquetejava.net
, que se utiliza para representar una dirección URL.import java.io.BufferedReader
: Importa la claseBufferedReader
del paquetejava.io
, que se utiliza para leer el contenido de un flujo de entrada de manera eficiente.import java.io.InputStreamReader
: Importa la claseInputStreamReader
del paquetejava.io
, que se utiliza para leer caracteres desde un flujo de entrada.fun main() {
: Inicia la función principal del programa.val url = URL("https://www.ejemplo.com")
: Crea una instancia de la claseURL
con la dirección URL especificada (reemplaza"https://www.ejemplo.com"
con la URL que desees).val inputStream = url.openStream()
: Abre un flujo de entrada desde la URL utilizando el métodoopenStream()
. Esto obtiene el contenido de la URL en forma de flujo de bytes.val bufferedReader = BufferedReader(InputStreamReader(inputStream))
: Crea unBufferedReader
que envuelve elInputStream
para permitir la lectura de caracteres de manera eficiente.inputStream
: En esta parte,inputStream
es el flujo de entrada de bytes que proviene de la URL. Cuando obtienes datos de una URL, generalmente obtienes un flujo de bytes en bruto que contiene datos sin procesar, como el contenido de una página web.InputStreamReader(inputStream)
:InputStreamReader
es una clase que toma un flujo de bytes (en este caso,inputStream
) y lo convierte en un flujo de caracteres. Esto es necesario porque, a menudo, necesitas trabajar con caracteres (texto) en lugar de bytes crudos.BufferedReader(...)
:BufferedReader
es otra clase que proporciona un búfer de lectura que mejora la eficiencia al leer caracteres de un flujo de entrada. Cuando envuelves unInputStreamReader
con unBufferedReader
, obtienes la capacidad de leer caracteres línea por línea de manera más eficiente.bufferedReader.useLines { lines ->
: Inicia un bloqueuseLines
, que garantiza que el recurso (bufferedReader
) se cierre correctamente cuando termine su uso.lines
es un iterable de líneas del contenido.lines.forEach { line ->
: Itera sobre cada línea en el contenido.println(line)
: Imprime cada línea en la consola estándar.}
: Finaliza el bloqueuseLines
.}
: Cierra la función principal.