16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

9.1.3 Die Klasse URLConnection und abgeleitete Klassen<br />

E<strong>in</strong>e URL-Connection erhält man durch Aufruf <strong>de</strong>r Metho<strong>de</strong> openConnection()<br />

e<strong>in</strong>es URL-Objekts. Mit diesem Objekt lassen sich Inhalte <strong>de</strong>r Ressource lesen sowie<br />

Informationen über die Art <strong>de</strong>s Objekts ermitteln. Je nach Art <strong>de</strong>s Protokolls wird die<br />

abstrakte Klasse URLConnection durch verschie<strong>de</strong>n konkrete Klassen<br />

implementiert, z.B. HttpURLConnection, AppletResourceConnection,<br />

FileURLConnection o<strong>de</strong>r FtpURLConnection. Die Subklassen implementieren<br />

die Protokolle, mit <strong>de</strong>nen die Verb<strong>in</strong>dung zum Inhalt aufgebaut wird. Subklassen<br />

bedienen sich dabei <strong>de</strong>r Klasse URLStreamHandler mit <strong>de</strong>n <strong>de</strong>r eigentliche Inhalt<br />

ausgelesen wird.<br />

URLConnection<br />

{ abstract }<br />

><br />

protected URLConnection(URL url)<br />

><br />

public Object getContent() throws IOException, UnkownServiceException<br />

// liefert <strong>de</strong>n Inhalt, auf <strong>de</strong>n die URL verweist.<br />

Der Inhalt e<strong>in</strong>es URL-Objekts lässt sich mit getContent() vom Server beschaffen.<br />

Für HTML-Dateien liefert getContent() e<strong>in</strong> Objekt vom Typ<br />

sun.net.www.MeteredStream, für normale Textdateien e<strong>in</strong><br />

sun.www.content.txt.Pla<strong>in</strong>TextInputStream-Objekt. Für Texte und HTML-<br />

Seiten kann man mit Hilfe e<strong>in</strong>es InputStream-Objekts die Datei (zeilenweise) lesen.<br />

Mit<br />

Object o = u.getContent();<br />

System.out.pr<strong>in</strong>tln("Ich erhielt " + o.getClass().getName());<br />

kann festgestellt wer<strong>de</strong>n, was für e<strong>in</strong> Handler-Objekt e<strong>in</strong>e URL-Klasse für <strong>de</strong>n<br />

Datenstrom e<strong>in</strong>setzt. getContent() erkennt anhand <strong>de</strong>r Endung bzw. <strong>de</strong>n ersten<br />

Bytes <strong>de</strong>n Typ <strong>de</strong>r Datei. Dann konvertiert <strong>de</strong>r Content Handler die Bytes se<strong>in</strong>es<br />

Datenstroms <strong>in</strong> e<strong>in</strong> <strong>Java</strong> Objekt.<br />

502

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!