Zufällige Lesen und Schreiben von Dateien in Java
Das Java.io -Paket bietet die RandomAccessfile -Klasse für die Erstellung und den Zugriff von zufälligen Dateien. Mit dieser Klasse können Sie zu einem beliebigen Speicherort in der Datei springen, um Daten zu lesen und zu schreiben. Das Programm kann Daten in eine zufällige Datei einfügen, ohne andere Daten in dieser Datei zu zerstören. Darüber hinaus kann das Programm auch zuvor gespeicherte Daten aktualisieren oder löschen, ohne die gesamte Datei neu zu schreiben.
Die RandomAccessfile -Klasse ist eine direkte Unterklasse der Objektklasse und enthält zwei Hauptkonstruktoren, mit denen Objekte von RandomAccessfile erstellt wurden, wie in der Tabelle gezeigt.
Es ist zu beachten, dass der Modus den Betriebsstatus der erstellten zufälligen Lese- und Schreibdatei darstellt, und seine Werte umfassen:
R: bedeutet, die Datei im schreibgeschützten Modus zu öffnen.
RW: bedeutet, eine Datei auf Leseschreiber zu öffnen.
In der folgenden Tabelle werden häufig verwendete Methoden und Beschreibungen der Randowaccessfile -Klasse aufgeführt.
[Beispiel] Imitieren Sie das Systemprotokoll und schreiben Sie Daten bis zum Ende der Datei.
Java.io importieren. RandomAccessfile myfile = neuer randomAccessfile ("ep10_12.log", "rw"); Daten myfile schreiben .close ();
Nachdem das Programm ausgeführt wurde, wird im Verzeichnis eine Datei von EP10_12.Log erstellt.
Komprimierungsverarbeitung von Dateien in Java
Das Java.util.zip -Paket enthält Klassen, die die Komprimierung und Dekompression von Dateien verarbeiten können, die aus den Byte -Stream -Klassen Ausgabe und InputStream vererbt werden. Unter ihnen können GzipoutputStream und ZipoutputStream Daten in GZIP- bzw. ZIP -Formate komprimieren, und GzipinpputStream und Zipinputstream können die komprimierten Daten wiederherstellen.
Die allgemeinen Schritte zum Schreiben von Dateien in komprimierte Dateien sind wie folgt:
Erzeugt ein komprimiertes Klassenobjekt, das der zum Erzeugen der komprimierten Datei zugeordnet ist.
Komprimierte Dateien enthalten normalerweise mehr als eine Datei.
Verwenden Sie PutNextEnry (Zipentry -Eintrag), um den komprimierten Eintrag zur komprimierten Datei hinzuzufügen.
Schreiben Sie die Dateiinhalte in diese komprimierte Datei.
Verwenden Sie CloseStry (), um den aktuellen Komprimierungseintrag zu beenden und den nächsten Komprimierungseintrag fortzusetzen.
Die allgemeinen Schritte zum Lesen einer Datei aus einer komprimierten Datei sind wie folgt:
Erzeugt ein komprimiertes Klassenobjekt, das der zu lesen komprimierten Datei zugeordnet ist.
Verwenden Sie GetNextEntry (), um den nächsten komprimierten Eintrag zu erhalten.
[Beispiel] Geben Sie mehrere Dateinamen ein, komprimieren Sie alle Dateien in "ep10_13.zip" und dekomprimieren und zeigen Sie sie dann aus der komprimierten Datei an.
Import Java.io.*; Import Java.util. "); // Verarbeitung komprimierter Datei zipoutputStream out = neuer zipoutputstream (neuer bufferedoutputStream (a)); für (int i = 0; i <argsgth; i ++) {// jede im Befehlszeilensystem eingegebene Datei verarbeiten. .Println ("Schreibdatei"+args [i]); int b; ); while (z = inout.getNextEnry ()! (x = inout.read ())! =-1) system.out.write (x);
Erstellen Sie nach dem Ausführen eine komprimierte Datei von EP10_13.zip im Programmverzeichnis und verwenden Sie Dekompressionssoftware (wie WinRar usw.), um sie zu öffnen. Bei der Eingabeaufforderung sind die Ergebnisse der Programmläufe in der Abbildung dargestellt: