RandomAccessFile Puffer schreiben

Status
Nicht offen für weitere Antworten.

reibi

Top Contributor
Hallo zusammen


ich hab wirklich ein Problem:

Und zwar hab ich mittels RAF folgenden Beispielcode gebastelt:

Code:
RandomAccessFile myRAF = new RandomAccessFile(file, "rw");

long length = myRAF.length();

 //Prüfen ob es sich NICHT um ein leeres oder nicht vorhandenes File handelt
 if (length > 0) {
myRAF.seek(length - 1);

 //Prüfen ob es sich beim letzten byte um ein Zeilenumbruch handelt
   if (myRAF.readByte() != 10) {
     myRAF.writeByte(10);
   } // end if
} // end if

myRAF.writeBytes(line);
 myRAF.close();$


Ich schreibe auf ein Netzlaufwerk soviel ist bekannt.

Also ich schreibe mittels "RW"-Option in das File hinein und will aber mit einem anderen Algorithmus kurz darauf später wieder zugreifen und das file einfach befragen ob es verändert wurde. das ist ja auch geschehen.

Code:
        long currentModifiedValue = file.lastModified();

        if (lastModified != currentModifiedValue) {
            returnValue = true;
            this.lastModified = currentModifiedValue;
        } // end if

Das object "file" ist übrigens das selbe wie oben im Code.

Es liefert zurück, dass es unverändert ist. Das wiederum sagt mir,
1.) dass das RAF-Object noch nicht geschrieben wurde.
oder
2.) das file-OBJ noch nicht aktualisiert worden ist.


Gibts entweder ne Möglichkeit

1.) das RAF-OBJ zu committen und damit sicherzustellen, das es auch wirklich geschrieben hat?

oder falls das automatisch geht und nicht in nem nebenbeiTread abläuft

2.) das file-OBJ zu aktualisieren ?


Danke und schönes WE ;-)
 
Wenn Du mit "rws" statt "rw" arbeitest, werden sämtliche Änderungen sofort an die darunterliegenden Schicht weitergegeben (im Falle von lokalen Dateien wäre damit auch sichergestellt, dass die Datei wirklich geschrieben wird). Bei Netzlaufwerken kann man da allerdings trotzdem nicht ganz sicher sein.
 
Hallo Murray

"so einfach" in Anführungszeichen kann es ein. Hab wirklich blos das Zeichen "s" hinzugefügt --> Nun gehter ;-) freu

Das mit dem Netzlaufwerk ist auch kein Problem. Es läuft ... und zwar stabil.

Übrigens mit der Option rw schreibt er auch pronto bei einem lokalem Laufwerk; warscheinlich ist das nur nicht sichergestellt.

Vielen Dank und Gruss ;-)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben