filechannel

___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ qstnhdr ___ Lesen einer GZIP-Datei von einem FileChannel (Java NIO) ___ answer7841986 ___

Ja, es gibt eine Lösung. Die Implementierung von GZip ist ziemlich einfach. Sie benötigen einen Inflater und CRC32 sowie den Header / Trailer. Leider nimmt %code% nur %code% , was suboptimal ist (ein direkter Puffer wäre effizienter gewesen). Dennoch ist die Verwendung von nicht-direktem Puffer und ByteBuffer.array () eine Option.

Der eingebaute %code% ist ziemlich langsam und wird in Java neu implementiert ein schöner Schritt in Richtung Leistung. %code% bietet reine Java-Implementierung (sieht fast wie reines C aus) und es ist möglich, das Byte zu ersetzen [] w / direkter Puffer. Die Library ist etwas langsamer im Vergleich zu inflater (decompress), weil zu viele Grenzen überprüft werden und es nicht möglich ist, so tief inline zu arbeiten. Es ist jedoch schneller bei der Komprimierung.

    
___ qstntxt ___

Ich muss eine .gz-Datei mit einem FileChannel lesen / entpacken.

Ich habe mit dem Extrahieren von GZIP-Archiven mit GZIPInputStream experimentiert, aber das erfordert keinen FileChannel. Ich habe keinen Zugriff auf den ursprünglichen FileInputStream, aus dem der FileChannel stammt.

Wenn jemand mir einen guten Weg (oder zumindest irgendeinen Weg) beim Lesen von GZIP von einem FileChannel erzählen könnte, würde ich es sehr schätzen.

Angepasst an eine Frage in den Sun Oracle-Foren .

    
___ tag123nio ___ NIO ist Java 'New I / O' eingeführt in 1.4, bietet nicht-blockierende und gemultiplexte Netzwerk-I / O; 'direkte' (native) Puffer; Dateisperren und zugeordnete Dateien; und Zeichensatzcodecs. ___ tag123zip ___ ZIP ist ein Format für komprimierte Dateiarchive, mit dem mehrere Dateien und Verzeichnisse in einer einzigen Datei zusammengefasst werden können. ___ answer3336068 ___

Sie können einen umschließenden InputStream um den FileChannel erhalten:

%Vor%

Kanäle befinden sich in Java SE.

    
___ tag123gzip ___ GZip / gzip ist sowohl der Name für ein komprimiertes Datenformat als auch für mehrere Softwareanwendungen, die dieses Format implementieren. Es wird häufig verwendet, um HTTP-Anfragen und -Antworten zu komprimieren und mit dem tar-Format für die Archivierung zu kombinieren. ___ tag123filekanal ___ In Java FileChannel ist eine abstrakte Klasse zum Lesen, Schreiben, Mappen und Manipulieren einer Datei ___
2
Antworten

Lesen einer GZIP-Datei von einem FileChannel (Java NIO)

Ich muss eine .gz-Datei mit einem FileChannel lesen / entpacken. Ich habe mit dem Extrahieren von GZIP-Archiven mit GZIPInputStream experimentiert, aber das erfordert keinen FileChannel. Ich habe keinen Zugriff auf den ursprünglichen FileInpu...
26.07.2010, 14:49