ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
662
662
EMPFEHLEN
-
Hallo zusammen
Folgender UseCase: Ich erhalte über's Netz Daten welche gezippt sind als byte[] zugesendet. Dieses Zip-File würde ich nun In-memory entpacken (ohne ein temporäres File auf der HD anzulegen) und die enthaltenen Dateien weiterverarbeiten.
Folgender Code dazu:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
public void importAsZip(InputStream in) { ZipInputStream zipInputStream = new ZipInputStream(in); ZipEntry entry = null; try { while((entry = zipInputStream.getNextEntry()) != null) { // TODO } } catch (IOException e) { // errorhandling } finally { // close stream } }
Ich sehe momentan keine Möglichkeit mithilfe des offiziellen Java-ZIP-API's (http://java.sun.com/j2se/1.5.0/docs/...e-summary.html) dieses Problem zu lösen
Ich möchte auf Zeile 8 anstelle des TODO's den Inhalt der gepackten Dateien weiterverarbeiten..
Wenn ich die Daten aus einer persistenten Datei lesen würde, gäbe es kein Problem. Dies könnte ich über die Methode getInputStream(ZipEntry entry) der Klasse ZipFile erledigen. Jedoch habe ich keine Instanz von ZipFile da das ganze in-memory geschehen soll...
Wer kann mir weiterhelfen?
Vielen Dank und Gruss
-
Hi -ben-,
hab mich nicht so sehr mit ZIP Files beschäftigt, aber eventuell könnte man das so machen:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
public class ZipTest { public byte[] getZipEntryContent(File file, String zipEntryName) throws IOException { byte[] buf = new byte[(int)file.length()]; FileInputStream fis = new FileInputStream(file); fis.read(buf); fis.close(); ZipInputStream zis = new ZipInputStream(new ByteArrayInputStream(buf)); ZipEntry ze; ByteArrayOutputStream bos = new ByteArrayOutputStream(); while((ze = zis.getNextEntry()) != null) { if(ze.getName().equals(zipEntryName)) { byte zeBuff[] = new byte[(int)ze.getSize()]; zis.read(zeBuff); bos.write(zeBuff); } } bos.close(); zis.close(); return bos.toByteArray(); } public static void main(String[] args) throws IOException { ZipTest tz = new ZipTest(); byte[] res = tz.getZipEntryContent(new File("test.zip"), "bla2.txt"); System.out.println(new String(res)); } }
Gruß
joschi
Ähnliche Themen
-
Zip-Files entpacken.
Von TvP im Forum PHPAntworten: 4Letzter Beitrag: 23.12.07, 19:42 -
Letzte Zeile eines Files bestimmen, einlesen & weiterverarbeiten
Von Grodax im Forum JavaAntworten: 1Letzter Beitrag: 09.10.07, 17:11 -
Probleme beim entpacken von Zip-files mit Java
Von torsch2711 im Forum JavaAntworten: 2Letzter Beitrag: 13.02.06, 12:26 -
Toolbar im Explorer - Inhalt eines Files ausgeben
Von TimSz im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 21.02.05, 16:17 -
Statt Position eines MC dessen Zeitleiste ansteuern
Von intercorni im Forum Flash PlattformAntworten: 1Letzter Beitrag: 24.03.04, 20:48





Zitieren
Login





