Solved! It was exaclty the problem pointed by Shawn. Here is the working code: File dotGit = new File("objects/25/0f67ef017fcb97b5371a302526872cfcadad21"); InflaterInputStream inflaterInputStream = new InflaterInputStream(new FileInputStream(dotGit)); Integer read = inflaterInputStream.read(); while(read != 0) { //reading the bytes from 'commit <lenght>\0' read = inflaterInputStream.read(); System.out.println((char)read.byteValue()); } ByteArrayOutputStream os = new ByteArrayOutputStream(); IOUtils.copyLarge(inflaterInputStream, os); System.out.println(new String(os.toByteArray())); Thank you all! -- Chico Sokol On Wed, May 22, 2013 at 11:25 AM, Chico Sokol <chico.sokol@xxxxxxxxx> wrote: >> Your code is broken. IOUtils is probably corrupting what you get back. >> After inflating the stream you should see the object type ("commit"), >> space, its length in bytes as a base 10 string, and then a NUL ('\0'). >> Following that is the tree line, and parent(s) if any. I wonder if >> IOUtils discarded the remainder of the line after the NUL and did not >> consider the tree line. > > > Maybe you're right, Shawn. I've also tried the following code: > > File dotGit = new File("objects/25/0f67ef017fcb97b5371a302526872cfcadad21"); > InflaterInputStream inflaterInputStream = new InflaterInputStream(new > FileInputStream(dotGit)); > ByteArrayOutputStream os = new ByteArrayOutputStream(); > IOUtils.copyLarge(inflaterInputStream, os); > System.out.println(new String(os.toByteArray())); > > But we got the same result, I'll try to read the bytes by myself > (without apache IOUtils). Is the contents of a unpacked object utf-8 > encoded? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html