Programmieren II (WF2)

Aufgabenblatt 8: Streams

Aufgabe 8.1: Kopierprogramm

Erstellen Sie ein Programm, welches beliebige Binärdateien kopiert.

Dabei sollen Quelldatei und Zieldatei bei Programmstart eingegeben werden können. Falls durch den Kopiervorgang eine existierende Datei überschrieben würde, soll der Benutzer zur Sicherheit noch einmal gefragt werden.

Aufgabe 8.2: Kopierprogramm II

Erstellen Sie ein Programm, welches beliebige Textdateien kopiert. Dabei sollen allerdings alle Vokale durch eine bei Programmstart eingegebene Zeichenkette ersetzt werden.

Aufgabe 8.3: Email-Adresse besser testen

Erweitern Sie Ihre Klasse EmailAddress aus der vergangenen Aufgabe   dahingehend, dass geprüft wird, ob Sie eine erlaubte Top Level Domain (TLD) enthält.

Die TLD ist der letzte Bestandteil in einem Domänennamen (z.B. de, com, net, uk,...)1.

Speichern Sie dazu die Liste erlaubter TLDs (siehe https://data.iana.org/TLD/tlds-alpha-by-domain.txt) in eine Datei, lesen Sie diese ein und prüfen Sie übergebene E-Mail-Adressen jeweils darauf, ob ihre TLD in der Liste enthalten ist. Falls nicht, lösen Sie eine Exception aus.

Aufgabe 8.4: Adresskartei laden/speichern

Erweitern Sie Ihre Adresskartei um eine Möglichkeit die verwalteten Daten zu laden und zu speichern.

Gehen Sie wie folgt vor:

  1. Überlegen Sie sich, welche Daten gespeichert werden müssen, um alle Kontaktdaten später wieder herstellen zu können.

  2. Überlegen Sie sich ein Textformat, welches es Ihnen möglichst einfach macht, die Daten zu speichern und vor allem auch wieder laden zu können.

  3. Implementieren Sie eine Klasse, welche in der Lage ist, die Adresskartei zu laden und zu speichern. Integrieren Sie diese in Ihr Programm.

Aufgabe 8.5: Eigener InputStream (optional)

Erstellen Sie eine Klasse CountingInputStream, welcher die Anzahl der über ihn gelesenen Bytes mitzählt.

Implementieren Sie die Klasse als Kindklasse von FilterInputStream2. Überlegen Sie sich, welche existierende Methoden Sie überladen müssen und testen Sie Ihre Klasse!