Home / Programmazione / Java / Leggere file da url con Java
Mattepuffo

Leggere file da url con Java

Leggere file da url con Java

Vediamo un semplice codice che riesce a leggere il contenuto di file usando un url.

Non so che utilità possa avere e quando usarlo.

Però magari qualche idea può sempre venire.

Io l'ho usato dentro un programmino per riempire una JTextArea ad esempio...

Il codice è poco e facile; in tutto abbiamo una classe e due metodi (incluso il main).

import java.io.*;
import java.net.URL;

public class URLReader {

private String url;

public URLReader(String url) {
this.url = url;
}

public String read() throws Exception {
StringBuilder sb = new StringBuilder();
URL u = new URL(this.url);
InputStreamReader in = new InputStreamReader(u.openStream());
BufferedReader buf = new BufferedReader(in);
String line;
while ((line = buf.readLine()) != null) {
sb.append(line);
}
return sb.toString();
}

public static void main(String[] args) throws Exception {
URLReader rd = new URLReader("http://192.168.1.130");
System.out.println(rd.read());
}
}

Il costruttore della classe URLReader accetta uno String come parametro, e corrisponde all'url da leggere.

Il metodo read è quello che fa il tutto.

Usiamo StringBuilder per costruire la stringa.

Poi apriamo uno stream in input con InputStreamReader prendendo lo stream dall'oggetto URL.

Dentro al ciclo while leggiamo il contenuto con un BufferedReader, e appendiamo il tutto allo StringBuilder.

Nel metodo main richiamiamo istanziamo un oggetto di classe URLReader passandogli l'url e stampiamo il risultato.

Io ho interrogato il web server che sta in un pc della rete, e questo è il risultato:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html> <head>  <title>Index of /</title> </head> <body><h1>Index of /</h1><table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr><tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="book/">book/</a>                  </td><td align="right">09-May-2011 14:48  </td><td align="right">  - </td><td>&nbsp;</td></tr><tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="info.php">info.php</a>               </td><td align="right">16-Apr-2011 17:23  </td><td align="right"> 19 </td><td>&nbsp;</td></tr><tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="sir/">sir/</a>                   </td><td align="right">21-May-2011 11:27  </td><td align="right">  - </td><td>&nbsp;</td></tr><tr><th colspan="5"><hr></th></tr></table><address>Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/1.0.0d DAV/2 PHP/5.3.6 with Suhosin-Patch Server at 192.168.1.130 Port 80</address></body></html>

Nient'altro che il codice della pagina di Apache.