- raf.seek(0);
- // read dictZip archive
- try (DictZipInputStream din = new DictZipInputStream(new RandomAccessInputStream(raf))) {
- for (int i = 0; i < cases; i++) {
- System.out.printf("seek position: %d%n", positions[i]);
- din.seek(positions[i]);
- len = din.read(buf, 0, 10);
- assertTrue(len > 0);
- assertEquals(expected[i], buf[0], String.format("Read data invalid at position %d", positions[i]));
- }
+ dout.finish();
+ }
+ // check created archive
+ Process process = Runtime.getRuntime().exec(
+ String.format("dictzip -d -f -k -v %s", zippedPath.toAbsolutePath()));
+ StreamGobbler streamGobbler = new StreamGobbler(process.getInputStream(), System.out::println);
+ Executors.newSingleThreadExecutor().submit(streamGobbler);
+ int returnCode = process.waitFor();
+ assertEquals(0, returnCode);
+ // read dictZip archive
+ try (RandomAccessFile raf = new RandomAccessFile(zippedPath.toFile(), "r");
+ DictZipInputStream din = new DictZipInputStream(new RandomAccessInputStream(raf))) {
+ for (int i = 0; i < cases; i++) {
+ System.out.printf("seek position: %d%n", positions[i]);
+ din.seek(positions[i]);
+ len = din.read(buf, 0, 10);
+ assertTrue(len > 0);
+ assertEquals(expected[i], buf[0], String.format("Read data invalid at position %d", positions[i]));