Hallo,
ich bekomme von einem Unternehmen (Kreditkarten) Dateien im .gz Format (entpackte Datei sollte ein xml sein) nur schaffe ich es nicht das Teil zu entpacken.
Hier mal meine Methode die ich dafür geschrieben bzw im Netz gefunden habe:
[JAVA=27]public void decompress(String source, String dest) throws FileNotFoundException, IOException {
String destination = dest;
if (dest == null || dest.isEmpty()){
destination = source.substring(0, source.length() - 3);
}
GZIPInputStream is = null;
FileOutputStream os = null;
try{
is = new GZIPInputStream(new FileInputStream(source));
os = new FileOutputStream(destination);
byte[] buffer = new byte[8192];
for (int length; (length = is.read(buffer)) != -1{
os.write(buffer, 0, length);
}
}finally{
if (os != null) try{ os.close(); }catch (IOException e){}
if (is != null) try{ is.close(); }catch (IOException e){}
}
}[/code]
Leider bekomme ich immer die gleiche Fehlermeldung:
Ist die Datei korrupt oder mache ich irgendwas falsch? Das die Datei korrupt ist glaube ich fast nicht, kommt nml von einem Kreditkarteninstitut und nja, wir werden nicht die einzigen sein, die die Daten in .gz bekommen. Habs aber auch versucht mit 7zip zu öffnen, leider auch ohne Erfolg.
Dann hab ich mal versucht die ersten Bytes auszulesen, wie es GZIPInputStream für die Magic Number macht - Ausgabe:
Read Number: 61215
Magic Number: 35615
Ich bin mit meinem Latein am Ende... hat jemand von euch eine Idee?
Danke im Vorraus,
Shoox
ich bekomme von einem Unternehmen (Kreditkarten) Dateien im .gz Format (entpackte Datei sollte ein xml sein) nur schaffe ich es nicht das Teil zu entpacken.
Hier mal meine Methode die ich dafür geschrieben bzw im Netz gefunden habe:
[JAVA=27]public void decompress(String source, String dest) throws FileNotFoundException, IOException {
String destination = dest;
if (dest == null || dest.isEmpty()){
destination = source.substring(0, source.length() - 3);
}
GZIPInputStream is = null;
FileOutputStream os = null;
try{
is = new GZIPInputStream(new FileInputStream(source));
os = new FileOutputStream(destination);
byte[] buffer = new byte[8192];
for (int length; (length = is.read(buffer)) != -1{
os.write(buffer, 0, length);
}
}finally{
if (os != null) try{ os.close(); }catch (IOException e){}
if (is != null) try{ is.close(); }catch (IOException e){}
}
}[/code]
Leider bekomme ich immer die gleiche Fehlermeldung:
Java:
java.io.IOException: Not in GZIP format
at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:137)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:68)
at com.xxx.xxx.utils.GunZip.decompress(GunZip.java:35)
Dann hab ich mal versucht die ersten Bytes auszulesen, wie es GZIPInputStream für die Magic Number macht - Ausgabe:
Read Number: 61215
Magic Number: 35615
Ich bin mit meinem Latein am Ende... hat jemand von euch eine Idee?
Danke im Vorraus,
Shoox