public byte[] get(int id) {
			try {
				byte header[] = new byte[6];
				index.seek(id * 6);
	            index.readFully(header);
	            int length = ((header[0] & 0xff) << 16) + ((header[1] & 0xff) << 8) + (header[2] & 0xff);
	            int position = ((header[3] & 0xff) << 16) + ((header[4] & 0xff) << 8) + (header[5] & 0xff); // 24 bit
	            if (position > 0) {
	                int offset = 0;
	                int blockOffset = 0;
	                byte file[] = new byte[length];
	                while (offset < length) {
	                    byte header2[] = new byte[8];
	                    
	                    int pos = position * 520;
	                    data.seek(pos);
	                   // data.seek(pos < 0 ? 0 : pos);
	                    data.readFully(header2);
	                    position = ((header2[4] & 0xff) << 16) + ((header2[5] & 0xff) << 8) + (header2[6] & 0xff); 
	                    while (offset < length && blockOffset < 512) {
	                        file[offset] = (byte) data.read();
	                        offset++;
	                        blockOffset++;
	                    }
	                    blockOffset = 0;
	                }
	                return file;
	            }
			} catch(Exception e) {
				e.printStackTrace();
			}
		
		return null;
	}