[FIXED] Wie macht man eine Datei spärlich?

Ausgabe

Wenn ich eine große Datei mit vielen Nullen habe, wie kann ich sie effizient zu einer Datei mit geringer Dichte machen?

Ist die einzige Möglichkeit, die gesamte Datei (einschließlich aller Nullen, die teilweise spärlich gespeichert werden können) zu lesen und mit seek in eine neue Datei umzuschreiben, um die Nullbereiche zu überspringen?

Oder gibt es eine Möglichkeit, dies in einer bestehenden Datei (zB File.setSparse(long start, long end)) zu machen?

Ich suche nach einer Lösung in Java oder einigen Linux-Befehlen, das Dateisystem wird ext3 oder ähnlich sein.

Lösung

Einige Dateisysteme unter Linux / UNIX haben die Fähigkeit, “Löcher” in eine vorhandene Datei zu schlagen. Sehen:

Es ist nicht sehr tragbar und wird nicht überall auf die gleiche Weise ausgeführt. Ich glaube, dass die IO-Bibliotheken von Java derzeit keine Schnittstelle dafür bieten.

Wenn das Lochen entweder über fcntl(F_FREESP)oder über einen anderen Mechanismus verfügbar ist, sollte es erheblich schneller sein als eine Kopier-/Suchschleife.


Beantwortet von –
FrankH.


Antwort geprüft von –
David Goodson (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like