Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 7. Auflage |
<< | < | > | >> | API | Kapitel 48 - Netzwerkprogrammierung |
Die Klasse URL wurde bereits in Abschnitt 41.1.1 behandelt. Neben den dort beschriebenen Möglichkeiten besitzt sie Methoden, um Daten von der Quelle zu lesen, die durch den URL adressiert wird:
public final InputStream openStream() throws IOException public final Object getContent() throws IOException public URLConnection openConnection() throws IOException |
java.net.URL |
Mit openStream wird ein InputStream geliefert, der wie die Methode getInputStream der Klasse Socket zum Lesen der Quelldaten verwendet werden kann. getContent versucht darüber hinaus, die Daten zu interpretieren. Dazu können Content Handler Factories registriert werden, die beispielsweise Text-, Image- oder Archivdateien interpretieren und ein dazu passendes Java-Objekt liefern. Die Methode openConnection stellt eine Vorstufe von getContent dar. Sie liefert ein Objekt des Typs URLConnection, das eine Abstraktion einer protokollspezifischen Verbindung zwischen einem Java-Programm und einem URL darstellt.
Als einfaches Beispiel wollen wir uns das folgende Programm SaveURL ansehen. Es wird mit einem URL und einer Datei als Argument aufgerufen. Mit Hilfe der Klasse URL stellt das Programm eine Verbindung zur angegebenen URL her und beschafft durch Aufruf von openStream einen InputStream. Mit seiner Hilfe wird die Quelle gelesen und das Ergebnis in die als zweites Argument angegebene Datei geschrieben:
001 /* SaveURL.java */ 002 003 import java.net.*; 004 import java.io.*; 005 006 public class SaveURL 007 { 008 public static void main(String[] args) 009 { 010 if (args.length != 2) { 011 System.err.println( 012 "Usage: java SaveURL <url> <file>" 013 ); 014 System.exit(1); 015 } 016 try { 017 URL url = new URL(args[0]); 018 OutputStream out = new FileOutputStream(args[1]); 019 InputStream in = url.openStream(); 020 int len; 021 byte[] b = new byte[100]; 022 while ((len = in.read(b)) != -1) { 023 out.write(b, 0, len); 024 } 025 out.close(); 026 in.close(); 027 } catch (MalformedURLException e) { 028 System.err.println(e.toString()); 029 System.exit(1); 030 } catch (IOException e) { 031 System.err.println(e.toString()); 032 System.exit(1); 033 } 034 } 035 } |
SaveURL.java |
Das Programm kann nun leicht verwendet werden, um den Inhalt beliebiger
URLs auf der Festplatte abzuspeichern. Die folgenden beiden Aufrufe
zeigen den Download der Hauptseite des Java-Servers von Oracle und
das Laden einer Testseite von unserem in Abschnitt 48.3.3
vorgestellten Webserver:
java SaveURL http://java.oracle.com x.html
java SaveURL http://localhost/index.html y.html
Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 7. Auflage, Addison Wesley, Version 7.0 |
<< | < | > | >> | API | © 1998, 2011 Guido Krüger & Heiko Hansen, http://www.javabuch.de |