diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Master/Reference Architectures and Patterns/hjp5/html/k100094.html | |
| download | Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.gz Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.bz2 | |
Diffstat (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100094.html')
| -rw-r--r-- | Master/Reference Architectures and Patterns/hjp5/html/k100094.html | 529 |
1 files changed, 529 insertions, 0 deletions
diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100094.html b/Master/Reference Architectures and Patterns/hjp5/html/k100094.html new file mode 100644 index 0000000..c723d90 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100094.html @@ -0,0 +1,529 @@ +<html>
+<head>
+<title>
+Handbuch der Java-Programmierung, 5. Auflage
+</title>
+</head>
+<body>
+<a name="startofbody"></a>
+<script language="JavaScript" src="hjp4lib.js">
+</script>
+<script language="JavaScript">
+installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100090.html;106,k100093.html;107,k100095.html;108,k100097.html");
+</script>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100090.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100093.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100095.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100097.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">Kapitel 14 - Collections I
+</table>
+<hr>
+
+
+<!-- Section -->
+<a name="klassehashtable"></a>
+<h2>14.4 Die Klasse Hashtable </h2>
+<hr>
+<ul>
+<li><a href="k100094.html#klassehashtable">14.4 Die Klasse Hashtable</a>
+<ul>
+<li><a href="k100094.html#sectlevel3id014004001">14.4.1 Einfügen von Elementen</a>
+<li><a href="k100094.html#sectlevel3id014004002">14.4.2 Zugriff auf Elemente</a>
+<li><a href="k100094.html#sectlevel3id014004003">14.4.3 Hashtable als Iterator</a>
+<li><a href="k100094.html#properties">14.4.4 Die Klasse Properties</a>
+</ul>
+</ul>
+<hr>
+
+<p>
+Die Klasse <a name="ixa100891"><a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a></a>
+ist eine Konkretisierung der abstrakten Klasse <a name="ixa100892"><a href="index_d.html#ixb100675"><font color=#000080><tt>Dictionary</tt></font></a></a>.
+Diese stellt einen <i>assoziativen</i> Speicher dar, der <i>Schlüssel</i>
+auf <i>Werte</i> abbildet und über den Schlüsselbegriff
+einen effizienten Zugriff auf den Wert ermöglicht. Ein Dictionary
+speichert also immer zusammengehörige Paare von Daten, bei denen
+der Schlüssel als Name des zugehörigen Wertes angesehen
+werden kann. Über den Schlüssel kann später der Wert
+leicht wiedergefunden werden.
+
+<p>
+Da ein Dictionary auf unterschiedliche Weise implementiert werden
+kann, haben die Java-Designer entschieden, dessen abstrakte Eigenschaften
+in einer Basisklasse zusammenzufassen. Die Implementierung <a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>
+benutzt das Verfahren der <a name="ixa100893"><i>Schlüsseltransformation</i></a>,
+also die Verwendung einer Transformationsfunktion (auch <a name="ixa100894"><i>Hash-Funktion</i></a>
+genannt), zur Abbildung von Schlüsseln auf Indexpositionen eines
+Arrays. Weitere Konkretisierungen der Klasse <a href="index_d.html#ixb100675"><font color=#000080><tt>Dictionary</tt></font></a>,
+etwa auf der Basis binärer Bäume, gibt es in Java derzeit
+nicht.
+
+<p>
+Neben den erwähnten abstrakten Eigenschaften besitzt <a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>
+noch die konkreten Merkmale <i>Kapazität</i> und <i>Ladefaktor</i>.
+Die Kapazität gibt die Anzahl der Elemente an, die insgesamt
+untergebracht werden können. Der Ladefaktor zeigt dagegen an,
+bei welchem Füllungsgrad die Hash-Tabelle vergrößert
+werden muss. Das Vergrößern erfolgt automatisch, wenn die
+Anzahl der Elemente innerhalb der Tabelle größer ist als
+das Produkt aus Kapazität und Ladefaktor. Seit dem JDK 1.2 darf
+der Ladefaktor auch größer als 1 sein. In diesem Fall wird
+die <a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>
+also erst dann vergrößert, wenn der Füllungsgrad größer
+als 100 % ist und bereits ein Teil der Elemente in den Überlaufbereichen
+untergebracht wurde.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Wichtig bei der Verwendung der <a href="index_d.html#ixb100675"><font color=#000080><tt>Dictionary</tt></font></a>-Klassen
+ist, dass das Einfügen und der Zugriff auf Schlüssel nicht
+auf der Basis des Operators <font color="#000077"><tt>==</tt></font>,
+sondern mit Hilfe der Methode <a name="ixa100895"><a href="index_e.html#ixb100223"><font color=#000080><tt>equals</tt></font></a></a>
+erfolgt. Schlüssel müssen daher lediglich <i>inhaltlich</i>
+gleich sein, um als identisch angesehen zu werden. Eine Referenzgleichheit
+ist dagegen nicht erforderlich.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
+<tr>
+<td><font color="#FFFFFF"> Hinweis </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+
+<!-- Section -->
+<a name="sectlevel3id014004001"></a>
+<h3>14.4.1 Einfügen von Elementen </h3>
+
+<p>
+Eine Instanz der Klasse <a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>
+kann mit Hilfe eines parameterlosen Konstruktors angelegt werden:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public Hashtable()
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/util/Hashtable.html" onClick="this.href=getApiDoc('java.util.Hashtable')"><font color="#660066" size=-1>java.util.Hashtable</font></a></td>
+</tr>
+</table>
+
+<p>
+Das Einfügen von Elementen erfolgt durch Aufruf der Methode <a name="ixa100896"><a href="index_p.html#ixb100698"><font color=#000080><tt>put</tt></font></a></a>:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public Object put(Object key, Object value)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/util/Hashtable.html" onClick="this.href=getApiDoc('java.util.Hashtable')"><font color="#660066" size=-1>java.util.Hashtable</font></a></td>
+</tr>
+</table>
+
+<p>
+Dieser Aufruf fügt das Schlüssel-Werte-Paar <i>(key, value)</i>
+in die <a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>
+ein. Weder <i>key</i> noch <i>value</i> dürfen dabei <a href="index_n.html#ixb100235"><font color=#000080><tt>null</tt></font></a>
+sein. Falls bereits ein Wertepaar mit dem Schlüssel <i>key</i>
+enthalten ist, wird der bisherige Wert gegen den neuen ausgetauscht,
+und <a href="index_p.html#ixb100698"><font color=#000080><tt>put</tt></font></a>
+liefert in diesem Fall den Wert zurück, der bisher dem Schlüssel
+zugeordnet war. Falls der Schlüssel bisher noch nicht vorhanden
+ist, ist der Rückgabewert <a href="index_n.html#ixb100235"><font color=#000080><tt>null</tt></font></a>.
+
+
+<!-- Section -->
+<a name="sectlevel3id014004002"></a>
+<h3>14.4.2 Zugriff auf Elemente </h3>
+
+<p>
+Der Zugriff auf ein Element erfolgt mit Hilfe der Methode <a name="ixa100897"><a href="index_g.html#ixb100699"><font color=#000080><tt>get</tt></font></a></a>
+über den ihm zugeordneten Schlüssel. <a href="index_g.html#ixb100699"><font color=#000080><tt>get</tt></font></a>
+erwartet ein Schlüsselobjekt und liefert den dazu passenden Wert.
+Falls der angegebene Schlüssel nicht enthalten war, ist der Rückgabewert
+<a href="index_n.html#ixb100235"><font color=#000080><tt>null</tt></font></a>:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public Object get(Object key)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/util/Hashtable.html" onClick="this.href=getApiDoc('java.util.Hashtable')"><font color="#660066" size=-1>java.util.Hashtable</font></a></td>
+</tr>
+</table>
+
+<p>
+Zusätzlich zu den bisher erwähnten Methoden gibt es noch
+zwei weitere mit den Namen <a name="ixa100898"><a href="index_c.html#ixb100700"><font color=#000080><tt>contains</tt></font></a></a>
+und <a name="ixa100899"><a href="index_c.html#ixb100701"><font color=#000080><tt>containsKey</tt></font></a></a>.
+Sie überprüfen, ob ein bestimmter Wert bzw. ein bestimmter
+Schlüssel in der <a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>
+enthalten ist:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public boolean contains(Object value)
+public boolean containsKey(Object key)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/util/Hashtable.html" onClick="this.href=getApiDoc('java.util.Hashtable')"><font color="#660066" size=-1>java.util.Hashtable</font></a></td>
+</tr>
+</table>
+
+<p>
+Der Rückgabewert ist <a href="index_t.html#ixb100233"><font color=#000080><tt>true</tt></font></a>,
+falls das gesuchte Element enthalten ist, andernfalls ist er <a href="index_f.html#ixb100234"><font color=#000080><tt>false</tt></font></a>.
+Bei der Verwendung dieser Funktionen ist zu beachten, dass die Suche
+nach einem Wert wahrscheinlich viel ineffizienter ist als die Suche
+nach einem Schlüssel. Während der Schlüssel über
+die Transformationsfunktion sehr schnell gefunden wird, erfordert
+die Suche nach einem Wert einen sequenziellen Durchlauf durch die
+Tabelle.
+
+<!-- Section -->
+
+<a name="sectlevel3id014004003"></a>
+<h3>14.4.3 Hashtable als Iterator </h3>
+
+<p>
+In der Klasse <a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>
+gibt es zwei Iteratoren, die zur Auflistung von Schlüsseln und
+Werten verwendet werden können:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public Enumeration elements()
+public Enumeration keys()
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/util/Hashtable.html" onClick="this.href=getApiDoc('java.util.Hashtable')"><font color="#660066" size=-1>java.util.Hashtable</font></a></td>
+</tr>
+</table>
+
+<p>
+Die Methode <a name="ixa100900"><a href="index_e.html#ixb100686"><font color=#000080><tt>elements</tt></font></a></a>
+liefert einen Iterator für die Auflistung aller Werte in der
+<a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>.
+In welcher Reihenfolge die Elemente dabei durchlaufen werden, ist
+nicht definiert. Da eine Hash-Funktion die Eigenschaft hat, Schlüssel
+gleichmäßig über den verfügbaren Speicher zu
+verteilen, ist davon auszugehen, dass die Iteratoren ihre Rückgabewerte
+in einer zufälligen Reihenfolge liefern.
+
+<p>
+Analog zu <a href="index_e.html#ixb100686"><font color=#000080><tt>elements</tt></font></a>
+liefert <a name="ixa100901"><a href="index_k.html#ixb100702"><font color=#000080><tt>keys</tt></font></a></a>
+eine Auflistung aller Schlüssel, die sich in der Hash-Tabelle
+befinden. Wie üblich liefern beide Methoden ein Objekt, welches
+das Interface <a href="index_e.html#ixb100122"><font color=#000080><tt>Enumeration</tt></font></a>
+implementiert. Wie zuvor erklärt, erfolgt der Zugriff daher mit
+Hilfe der Methoden <a href="index_h.html#ixb100684"><font color=#000080><tt>hasMoreElements</tt></font></a>
+und <a href="index_n.html#ixb100685"><font color=#000080><tt>nextElement</tt></font></a>.
+
+<p>
+Das folgende Beispiel verdeutlicht die Anwendung einer <a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>:
+<a name="hashtableiterator"></a>
+
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#DDDDDD">
+<tr>
+<td valign=top>
+<font color="#000055">
+<pre>
+<font color="#555555">001 </font><font color="#00AA00">/* Listing1403.java */</font>
+<font color="#555555">002 </font>
+<font color="#555555">003 </font><font color="#0000AA">import</font> java.util.*;
+<font color="#555555">004 </font>
+<font color="#555555">005 </font><font color="#0000AA">public</font> <font color="#0000AA">class</font> Listing1403
+<font color="#555555">006 </font>{
+<font color="#555555">007 </font> <font color="#0000AA">public</font> <font color="#0000AA">static</font> <font color="#006699">void</font> main(String[] args)
+<font color="#555555">008 </font> {
+<font color="#555555">009 </font> Hashtable h = <font color="#0000AA">new</font> Hashtable();
+<font color="#555555">010 </font>
+<font color="#555555">011 </font> <font color="#00AA00">//Pflege der Aliase</font>
+<font color="#555555">012 </font> h.put(<font color="#0000FF">"Fritz"</font>,<font color="#0000FF">"f.mueller@test.de"</font>);
+<font color="#555555">013 </font> h.put(<font color="#0000FF">"Franz"</font>,<font color="#0000FF">"fk@b-blabla.com"</font>);
+<font color="#555555">014 </font> h.put(<font color="#0000FF">"Paula"</font>,<font color="#0000FF">"user0125@mail.uofm.edu"</font>);
+<font color="#555555">015 </font> h.put(<font color="#0000FF">"Lissa"</font>,<font color="#0000FF">"lb3@gateway.fhdto.northsurf.dk"</font>);
+<font color="#555555">016 </font>
+<font color="#555555">017 </font> <font color="#00AA00">//Ausgabe</font>
+<font color="#555555">018 </font> Enumeration e = h.keys();
+<font color="#555555">019 </font> <font color="#0000AA">while</font> (e.hasMoreElements()) {
+<font color="#555555">020 </font> String alias = (String)e.nextElement();
+<font color="#555555">021 </font> System.out.println(
+<font color="#555555">022 </font> alias + <font color="#0000FF">" --> "</font> + h.get(alias)
+<font color="#555555">023 </font> );
+<font color="#555555">024 </font> }
+<font color="#555555">025 </font> }
+<font color="#555555">026 </font>}</pre>
+</font>
+</td>
+<td valign=top align=right>
+<a href="../examples/Listing1403.java"><font color="#000055" size=-1>Listing1403.java</font></a></td>
+</tr>
+</table>
+<i>
+Listing 14.3: Anwendung der Klasse Hashtable</i></p>
+
+<p>
+Das Programm legt eine leere <a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>
+an, die zur Aufnahme von Mail-Aliasen verwendet werden soll. Dazu
+soll zu jeder E-Mail-Adresse ein kurzer Aliasname gepflegt werden,
+unter dem die lange Adresse später angesprochen werden kann.
+Das Programm legt zunächst die Aliase »Fritz«, »Franz«,
+»Paula« und »Lissa« an und assoziiert jeden mit
+der zugehörigen E-Mail-Adresse. Anschließend durchläuft
+es alle Schlüssel und gibt zu jedem den dazu passenden Wert aus.
+Die Ausgabe des Programms ist:
+<font color="#333300">
+<pre>
+Lissa --> lb3@gateway.fhdto.northsurf.dk
+Paula --> user0125@mail.uofm.edu
+Franz --> fk@b-blabla.com
+Fritz --> f.mueller@test.de
+</pre>
+</font>
+
+
+<!-- Section -->
+<a name="properties"></a>
+<h3>14.4.4 Die Klasse Properties </h3>
+
+<p>
+Die Klasse <a name="ixa100902"><a href="index_p.html#ixb100703"><font color=#000080><tt>Properties</tt></font></a></a>
+ist aus <a href="index_h.html#ixb100419"><font color=#000080><tt>Hashtable</tt></font></a>
+abgeleitet und repräsentiert ein auf <a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>-Paare
+spezialisiertes Dictionary, das es erlaubt, seinen Inhalt auf einen
+externen Datenträger zu speichern oder von dort zu laden. Ein
+solches Objekt wird auch als <i>Property-Liste</i> (oder <i>Eigenschaften-Liste</i>)
+bezeichnet. Zur Instanzierung stehen zwei Konstruktoren zur Verfügung:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public Properties()
+public Properties(Properties defaults)
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/util/Properties.html" onClick="this.href=getApiDoc('java.util.Properties')"><font color="#660066" size=-1>java.util.Properties</font></a></td>
+</tr>
+</table>
+
+<p>
+Der erste legt eine leere Property-Liste an, der zweite füllt
+sie mit den übergebenen Default-Werten. Der Zugriff auf die einzelnen
+Elemente erfolgt mit den Methoden <a name="ixa100903"><a href="index_g.html#ixb100704"><font color=#000080><tt>getProperty</tt></font></a></a>
+und <a name="ixa100904"><a href="index_p.html#ixb100705"><font color=#000080><tt>propertyNames</tt></font></a></a>:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public String getProperty(String key)
+public String getProperty(String key, String defaultValue)
+
+public Enumeration propertyNames()
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/util/Properties.html" onClick="this.href=getApiDoc('java.util.Properties')"><font color="#660066" size=-1>java.util.Properties</font></a></td>
+</tr>
+</table>
+
+<p>
+Die erste Variante von <a href="index_g.html#ixb100704"><font color=#000080><tt>getProperty</tt></font></a>
+liefert die Eigenschaft mit der Bezeichnung <font color="#000077"><tt>key</tt></font>.
+Ist sie nicht vorhanden, wird <a href="index_n.html#ixb100235"><font color=#000080><tt>null</tt></font></a>
+zurückgegeben. Die zweite Variante hat dieselbe Aufgabe, gibt
+aber den Standardwert <font color="#000077"><tt>defaultValue</tt></font>
+zurück, wenn die gesuchte Eigenschaft nicht gefunden wurde. Mit
+<a href="index_p.html#ixb100705"><font color=#000080><tt>propertyNames</tt></font></a>
+kann ein <a href="index_e.html#ixb100122"><font color=#000080><tt>Enumeration</tt></font></a>-Objekt
+beschafft werden, mit dem alle Eigenschaften der Property-Liste aufgezählt
+werden können.
+
+<p>
+Zum Speichern einer Property-Liste steht die Methode <a name="ixa100905"><a href="index_s.html#ixb100706"><font color=#000080><tt>store</tt></font></a></a>
+zur Verfügung:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public void store(OutputStream out, String header)
+ throws IOException
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/util/Properties.html" onClick="this.href=getApiDoc('java.util.Properties')"><font color="#660066" size=-1>java.util.Properties</font></a></td>
+</tr>
+</table>
+
+<p>
+Sie erwartet einen <a href="index_o.html#ixb100673"><font color=#000080><tt>OutputStream</tt></font></a>
+als Ausgabegerät (siehe <a href="k100125.html#kapitelbytestreams">Kapitel 19</a>)
+und einen Header-<a href="index_s.html#ixb100117"><font color=#000080><tt>String</tt></font></a>,
+der als Kommentar in die Ausgabedatei geschrieben wird.
+
+<p>
+Das Gegenstück zu <a href="index_s.html#ixb100706"><font color=#000080><tt>store</tt></font></a>
+ist <a name="ixa100906"><a href="index_l.html#ixb100707"><font color=#000080><tt>load</tt></font></a></a>.
+Mit ihr kann eine Property-Datei eingelesen werden:
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
+<tr>
+<td valign=top width=100%>
+<font color="#660066">
+<pre>
+public void load(InputStream in)
+ throws IOException
+</pre>
+</font>
+</td>
+<td valign=top>
+<a href="../jdkdocs/api/java/util/Properties.html" onClick="this.href=getApiDoc('java.util.Properties')"><font color="#660066" size=-1>java.util.Properties</font></a></td>
+</tr>
+</table>
+
+<p>
+Hier muss ein <a href="index_i.html#ixb100642"><font color=#000080><tt>InputStream</tt></font></a>
+übergeben werden (siehe ebenfalls <a href="k100125.html#kapitelbytestreams">Kapitel 19</a>),
+der die Daten der Property-Liste zur Verfügung stellt.
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=1></td>
+<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Im JDK 1.1 wurde statt der Methode <a href="index_s.html#ixb100706"><font color=#000080><tt>store</tt></font></a>
+die Methode <a name="ixa100907"><a href="index_s.html#ixb100708"><font color=#000080><tt>save</tt></font></a></a>
+zum Speichern einer Property-Liste verwendet. Diese hatte dieselbe
+Signatur, löste aber bei I/O-Problemen keine <a name="ixa100908"><a href="index_i.html#ixb100709"><font color=#000080><tt>IOException</tt></font></a></a>
+aus. Mit dem JDK 1.2 wurde <a href="index_s.html#ixb100708"><font color=#000080><tt>save</tt></font></a>
+als <a name="ixa100909"><a href="index_d.html#ixb100161"><font color=#000080><tt>deprecated</tt></font></a></a>
+deklariert und durch <a href="index_s.html#ixb100706"><font color=#000080><tt>store</tt></font></a>
+ersetzt.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#FF9900">
+<tr>
+<td><font color="#FFFFFF"> JDK1.1-6.0 </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#FF9900"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+<p>
+<table border=0 cellspacing=0 cellpadding=0 width=100%>
+<tr>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top width=1000>
+
+<p>
+Property-Dateien sind Textdateien mit einem recht einfachen Aufbau.
+Je Zeile enthalten sie einen Schlüssel und den zugehörigen
+Wert. Beide sind durch ein Gleichheitszeichen voneinander getrennt.
+Falls das erste nicht-leere Zeichen einer Zeile ein »#«
+oder »!« ist, wird die gesamte Zeile als Kommentar angesehen
+und beim Einlesen ignoriert. Zusätzlich sind einige Escape-Zeichen
+wie \t, \n, \r, \\, \" oder \' erlaubt, und es gibt die Möglichkeit,
+sehr lange Schlüssel-Wert-Paare auf mehrere Zeilen zu verteilen.
+Weitere Details können in der API-Dokumentation der Methoden
+<a href="index_l.html#ixb100707"><font color=#000080><tt>load</tt></font></a>
+und <a href="index_s.html#ixb100706"><font color=#000080><tt>store</tt></font></a>
+nachgelesen werden.</td>
+<td><img src="trp1_1.gif" width=2></td>
+<td valign=top>
+<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
+<tr>
+<td><font color="#FFFFFF"> Hinweis </font></td>
+</tr>
+</table>
+</td>
+<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
+</tr>
+</table>
+
+<p>
+Wir wollen an dieser Stelle die Betrachtung der Klasse <a href="index_p.html#ixb100703"><font color=#000080><tt>Properties</tt></font></a>
+abschließen. Ein weiteres Beispiel zu ihrer Verwendung findet
+sich in <a href="k100110.html#systemproperties">Abschnitt 16.3.1</a>.
+<hr>
+<table border=0 cellpadding=0 cellspacing=1 width="100%">
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
+<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
+Wesley, Version 5.0.1
+<tr bgcolor="#EEFFCC">
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100090.html"> << </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100093.html"> < </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100095.html"> > </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="k100097.html"> >> </a>
+<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
+<td align="right">© 1998, 2007 Guido Krüger & Thomas
+Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
+</table>
+<a name="endofbody"></a>
+</body>
+</html>
|
