Arbeitsblatt 6 – EAD II Dateiarbeit Um nicht jedes Mal größere Mengen an Daten eingeben zu müssen oder sich Ergebnisse von Programmen aufbewahren zu können, kann man diese Daten in Dateien abspeichern bzw. aus Dateien laden. In Java erfolgt das unter Verwendung von Streams. Es gibt ein Beispielprogramm, das Sie herunterladen können. Klasse FileDialog http://www.dpunkt.de/java/Referenz/Das_Paket_java.awt/50.html Um Fehler zu vermeiden, die aufgrund nicht existierender Dateien auftreten, sollte die Dateiauswahl IMMER über einen Dateiauswahldialog erfolgen. //Dialogfenster konfigurieren zum Laden einer Datei FileDialog dialog = new FileDialog(new Frame(), "Datei öffnen", FileDialog.LOAD); //Dialogfenster anzeigen dialog.setVisible(true); //wenn keine Datei ausgewählt oder Abbrechen geklickt wurde, Methode beenden if (dialog.getFile() == null) return; //ausgewählte Datei an Dateivariable zuweisen datei = new File(dialog.getDirectory(),dialog.getFile()); Es ist erforderlich, vorher die Variable “datei” zu deklarieren und alle benötigten Pakete zu importieren. Lesen aus und Schreiben in Dateien Wurde die Datei zum Lesen geöffnet, kann nun mit readLine() eine Zeile der Datei gelesen werden (bis zum Zeilenendekennzeichen). String dateizeile = ein.readLine(); Weitere Informationen finden Sie in der Dokumentation der Klasse BufferedReader: http://www.dpunkt.de/java/Referenz/Das_Paket_java.io/4.html . In Dateien schreiben kann man mit dem Befehl write(). ausgabe.write(textfensterinhalt); Siehe hierzu die Dokumentation der Klasse BufferedWriter: http://www.dpunkt.de/java/Referenz/Das_Paket_java.io/5.html Aufgabe 1: Cäsar-Verschlüsselung Verwenden Sie das Beispielprogramm und erweitern Sie es um eine Klasse, in der Verschlüsselungsalgorithmen implementiert werden können. Implementieren Sie die Klasse als einfache Javaklasse entsprechend dem angegebenen UMLDiagramm. Die ersten drei Methoden dienen zum Zugriff auf die gespeicherten Texte. Die Cäsarverschlüsselung erfolgt durch die Verschiebung jedes Buchstabens um eine einzugebende Anzahl Stellen im Alphabet. Es wird der originaltext als Eingabe verwendet und das Ergebnis in kryptotext abgelegt. Aufgabe 2: graphische Oberfläche anpassen Die Oberflächenklasse braucht nun eine Instanz der Verschlüsselung, um auf die Methoden zugreifen zu können. Passen Sie die Oberfläche des Beispielprogramms so an, dass im oberen Textfenster ein Text eingegeben wird, entweder per Hand oder eingelesen au seiner Datei. Ergänzen Sie einen Button zum Verschlüsseln und geben Sie den verschlüsselten Text im unteren Textfenster aus. Hinweise: Erinnern Sie sich an Aufgabenblatt 3 von EAD I für die Umwandlung von Character zu Integer und umgedreht, um die Verschiebung im Alphabet einfach berechnen zu können. Mit originaltext.charAt(i); können Sie auf das i-te Zeichen im String originaltext zugreifen (das ist dann ein char).