Hallo Zusammen,
ich habe folgende Methode: Diese gibt mir aus, welche Wörter ich zuvor in die Datei "woerter.bin" geschrieben habe. Diese Methode ist Teil in einem Editor in dem ich weitere Wörter hinzufügen kann. Die Anzeige klappt auch soweit.
Allerdings wird beim nochmaligen Aufruf der Methode (erfolgt im Editor über einen Button) die Anzeige einfach fortgeschrieben. Ich würde gerne die alte Ausgabe (hier über Labels) bei erneuten Aufruf überschreiben. Ich habe irgendwie keinen Ansatzpunkt...mit Remove (am Anfang der Methode komme ich nicht zum gewünschten Ziel... und auch meine Versuche den Filepointer beim erneuten Aufruf einfach weiterzuschieben...klappt nicht)
hoffe auf einen Denkanstoß
[CODE lang="java" title="Methode zum Anzeigen"]private void datenLesen() {
try {
//eine neue Instanz für den Lesezugriff
datei = new RandomAccessFile("woerter.bin","r");
//den Zeiger auf das 4. Byte setzen, da erst am dem 5. Byte gelesen
//werden soll, weil in den Bytes 1 - 4 die Anzahl der Wörter im Typen Int
//abgespeichert wird
datei.seek(4);
//Mit der While-Schleife wird die Ausgabe gesteuert
//solange die aktuelle Position kleiner ist als die
//länge der Datei wird der Index ausgelesen
//und das Wort ausgegeben
while(datei.getFilePointer() < datei.length()) {
add(new JLabel(datei.readInt() + ". Wort: "));
add(new JLabel(datei.readUTF()));
//das Fenster neu packen
pack();
}
datei.close();
}
catch (IOException e) {
JOptionPane.showMessageDialog(this,"Beim Laden ist ein Problem aufgetreten");
}
[/CODE]
ich habe folgende Methode: Diese gibt mir aus, welche Wörter ich zuvor in die Datei "woerter.bin" geschrieben habe. Diese Methode ist Teil in einem Editor in dem ich weitere Wörter hinzufügen kann. Die Anzeige klappt auch soweit.
Allerdings wird beim nochmaligen Aufruf der Methode (erfolgt im Editor über einen Button) die Anzeige einfach fortgeschrieben. Ich würde gerne die alte Ausgabe (hier über Labels) bei erneuten Aufruf überschreiben. Ich habe irgendwie keinen Ansatzpunkt...mit Remove (am Anfang der Methode komme ich nicht zum gewünschten Ziel... und auch meine Versuche den Filepointer beim erneuten Aufruf einfach weiterzuschieben...klappt nicht)
hoffe auf einen Denkanstoß
[CODE lang="java" title="Methode zum Anzeigen"]private void datenLesen() {
try {
//eine neue Instanz für den Lesezugriff
datei = new RandomAccessFile("woerter.bin","r");
//den Zeiger auf das 4. Byte setzen, da erst am dem 5. Byte gelesen
//werden soll, weil in den Bytes 1 - 4 die Anzahl der Wörter im Typen Int
//abgespeichert wird
datei.seek(4);
//Mit der While-Schleife wird die Ausgabe gesteuert
//solange die aktuelle Position kleiner ist als die
//länge der Datei wird der Index ausgelesen
//und das Wort ausgegeben
while(datei.getFilePointer() < datei.length()) {
add(new JLabel(datei.readInt() + ". Wort: "));
add(new JLabel(datei.readUTF()));
//das Fenster neu packen
pack();
}
datei.close();
}
catch (IOException e) {
JOptionPane.showMessageDialog(this,"Beim Laden ist ein Problem aufgetreten");
}
[/CODE]