Re: Java Inflater problem decompressing packfile
- From
- madmarcos <fru574@my.utsa.edu>
- Date
- Apr 17, 2011, 04:02 UTC
- Message-ID
- <1303012970295-6280285.post@n2.nabble.com>
- In-Reply-To
- <1303000824677-6280097.post@n2.nabble.com>
my entire testing class is below. just change the file path string in the first line in test4.
package server_test2;
import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.util.zip.Inflater;
public class InflaterTest2 { public InflaterTest2() {
} public void test4() {
try {
byte[] packFile = readFile2("/Users/marcos/GitProxyCache/jedit.pack");byte [] packDataWindow = new byte[8000];
//the below object is the .classpath blob. works fine System.arraycopy(packFile, 4828 + 2, packDataWindow, 0, packDataWindow.length);
//the below object is the .project blob. works fine //System.arraycopy(packFile, 4978 + 2, packDataWindow, 0, packDataWindow.length); //the below object is the top-level tree. works fine //System.arraycopy(packFile, 5171 + 2, packDataWindow, 0, packDataWindow.length);
//the below object is source code notes blob. works fine //System.arraycopy(packFile, 5760 + 3, packDataWindow, 0, packDataWindow.length);
//the below object is a build file blob. works fine
//System.arraycopy(packFile, 8619, packDataWindow, 0,
packDataWindow.length);
//THE BELOW OBJECT FAILS TO INFLATE
//IT CAUSES an "incorrect data check" error
//Object starts at index 9470
//Type = 3, Decompressed size = 51060 (uses 2 extra size bytes)
//System.arraycopy(packFile, 9470 + 3, packDataWindow, 0,
packDataWindow.length); Inflater decompresser = new Inflater(); decompresser.setInput(packDataWindow, 0, packDataWindow.length); byte[] result = new byte[60000]; int resultLength = 0; resultLength = decompresser.inflate(result); String outputString = new String(result, 0, resultLength, "UTF-8"); System.out.println(outputString);
System.out.println("------- End Decompressed Output -------");
int numCompressed = (int) decompresser.getBytesRead();
System.out.println("# Bytes Compressed: " + numCompressed);
decompresser.end(); } catch (Exception e) {
e.printStackTrace();
}
} public byte [] readFile2(String fileName) {
byte [] input2 = null;
File tempPackInputFile2 = new File(fileName);
DataInputStream tempPackInputStream2;
try {
tempPackInputStream2 = new DataInputStream(new
FileInputStream(tempPackInputFile2));
long tempPackLength2 = tempPackInputFile2.length();
input2 = new byte[(int) tempPackLength2];
tempPackInputStream2.readFully(input2);
tempPackInputStream2.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return input2;
} public static void main(String[] args) {
InflaterTest2 app = new InflaterTest2();
app.test4();
System.out.println("Done.");
}}
-- View this message in context: http://git.661346.n2.nabble.com/Java-Inflater-problem-decompressing-packfile-tp6278154p6280285.html Sent from the git mailing list archive at Nabble.com.