From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100296.html | 180 +++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100296.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100296.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100296.html b/Master/Reference Architectures and Patterns/hjp5/html/k100296.html new file mode 100644 index 0000000..a22ae40 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100296.html @@ -0,0 +1,180 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 46 - Netzwerkprogrammierung +
+
+ + + + +

46.4 Daten mit Hilfe der Klasse URL lesen

+
+ +
+ +

+Die Klasse URL +wurde bereits in Abschnitt 40.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
+ +Listing 46.8: Daten von einem URL lesen

+ +

+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 SUN und das +Laden einer Testseite von unserem in Abschnitt 46.3.3 +vorgestellten Web-Server: + +

+java SaveURL http://java.sun.com x.html
+
+java SaveURL http://localhost/index.html y.html
+
+ +
+ + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3