import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; /** * Created with IntelliJ IDEA. * User: carsten * Date: 3/14/13 * Time: 2:22 PM * To change this template use File | Settings | File Templates. */ public class SnappyTestInChunkedStream2 { public static void main(String[] args) throws Exception { int chunkSize = 512 * 1024; String s = "/Users/carsten/workspaces/jumbodb/database/~/jumbodb/data/de.catchment.aggregated.daily.sum.by_cell/first_delivery/36da3747-f7fb-406d-bfc1-101b6c2cf927/part-r-00000.chunks.snappy"; File metaFile = new File(s); long start = System.currentTimeMillis(); FileInputStream metaFis = new FileInputStream(metaFile); DataInputStream metaDis = new DataInputStream(new BufferedInputStream(metaFis)); long length = metaDis.readLong();// skip meta length long chunks = (metaFile.length() - 8) / 4; // long toSkip = 13135649; long compressedToSkip = 0l; long currentUncompressed = 0l; int currentChunk = 0; for(int i = 0; i < 2; i++) { int l = metaDis.readInt(); // System.out.println("meta l " + l); compressedToSkip += l + 4; // int len currentUncompressed += chunkSize; currentChunk++; } // currentUncompressed -= chunkSize; FileInputStream fis = new FileInputStream("/Users/carsten/workspaces/jumbodb/database/~/jumbodb/data/de.catchment.aggregated.daily.sum.by_cell/first_delivery/36da3747-f7fb-406d-bfc1-101b6c2cf927/part-r-00000"); // BufferedInputStream bis = new BufferedInputStream(fis); byte[] b = new byte[1024]; ChunkSkipableSnappyInputStream sis = new ChunkSkipableSnappyInputStream(fis); // sis.read(b); System.out.println("chunk " + sis.getCurrentChunk() + " chunk offset " + sis.getCurrentChunkOffset()); // sis.skipCompressed(compressedToSkip); sis.read(b); System.out.println(new String(b, 0, 100)); // System.out.println("Time: " + (System.currentTimeMillis() - start)); // metaDis.close(); // sis.close(); // bis.close(); //495659539 495659549 fis.close(); } }