L'accès à des ressources sur le World Wide Web, ou plus généralement, sur l'Internet, s'intègre naturellement dans le modèle des flots. Voici deux exemples de connexion d'un programme à un service Internet.
Le programme suivant connecte un flot d'entrée à une ressource Web spécifiée par son URL, transforme ce flot d'octets en un flot de caractères et le place dans un tampon ; les lignes successivement lues sur ce flot d'entrée sont copiées sur la sortie standard du programme (jusqu'à ce que readLine() retourne null).
import java.net.URL; import java.net.MalformedURLException; import java.io.*; class URLReader { public static void main(String[] args) throws MalformedURLException, IOException { URL url = new URL("http://www.enpc.fr/"); BufferedReader in = new BufferedReader( new InputStreamReader( url.openStream())); String ligne; while ((ligne = in.readLine()) != null) System.out.println(ligne); in.close(); } }
Le programme suivant connecte un flot d'entrée à un port Internet spécifié par un nom de machine et un numéro de port ; ce numéro, 13, est celui d'un serveur dont la réponse est une ligne contenant la date et l'heure courante ; la connexion à ce port utilise le protocole TCP. Ce flot d'entrée est ensuite transformé en un flot de caractères, puis placé dans un tampon ; la ligne lue sur ce flot d'entrée est simplement copiée sur la sortie standard du programme.
import java.io.*; import java.net.Socket; import java.net.UnknownHostException; class DateReader { public static void main(String[] args) throws UnknownHostException, IOException { String nomHote = args.length>0 ? args[0] : "localhost"; Socket s = new Socket(nomHote, 13); BufferedReader reponse = new BufferedReader( new InputStreamReader( s.getInputStream())); String date = reponse.readLine(); System.out.println(nomHote + " : " + date); reponse.close(); s.close(); } }