Wir haben Anforderungen, um festzustellen, ob ein eingehender InputStream auf eine ZIP-Datei oder ZIP-Daten verweist. Wir haben keinen Verweis auf die zugrunde liegende Quelle des Streams. Unser Ziel ist es, den Inhalt dieses Streams in einen OutputStream zu kopieren, der an einen anderen Ort gerichtet ist.
Ich habe versucht, den Stream mit ZipInputStream zu lesen und ein ZipEntry zu extrahieren. Das ZipEntry ist null, wenn der Stream eine reguläre Datei ist - wie erwartet -, jedoch verliere ich beim Überprüfen eines ZipEntry die ersten Bytes des Streams. Somit habe ich bereits am Anfang Daten aus dem Stream verloren, wenn ich merke, dass es sich um einen regulären Stream handelt.
Gedanken dazu, wie man überprüfen kann, ob der InputStream ein Archiv ist, ohne Daten zu verlieren, wären hilfreich.
Danke.