@Override protected OutputStream createOutputStream(OutputStream out) throws IOException { return new BZip2CompressorOutputStream(out); } };
@Override public OutputStream wrapOutputStream(OutputStream out) throws IOException { return new BZip2CompressorOutputStream(out); } };
@Override OutputStream encode(final OutputStream out, final Object options) throws IOException { final int blockSize = numberOptionOrDefault(options, BZip2CompressorOutputStream.MAX_BLOCKSIZE); return new BZip2CompressorOutputStream(out, blockSize); } }
@Signature public void __construct(Environment env, OutputStream outputStream, int blockSize) throws IOException { this.outputStream = new BZip2CompressorOutputStream(outputStream, blockSize); } }
public static byte[] compress(byte[] bytes) throws IOException { InputStream is = new ByteArrayInputStream(bytes); ByteArrayOutputStream bout = new ByteArrayOutputStream(); try (OutputStream os = new BZip2CompressorOutputStream(bout, 1)) { IOUtils.copy(is, os); } byte[] out = bout.toByteArray(); assert BZIP_HEADER[0] == out[0]; assert BZIP_HEADER[1] == out[1]; assert BZIP_HEADER[2] == out[2]; assert BZIP_HEADER[3] == out[3]; return Arrays.copyOfRange(out, BZIP_HEADER.length, out.length); // remove header.. }
@Override public ByteBuffer compress(ByteBuffer uncompressedData) throws IOException { ByteArrayOutputStream baos = getOutputBuffer(uncompressedData.remaining()); try (BZip2CompressorOutputStream outputStream = new BZip2CompressorOutputStream(baos)) { outputStream.write(uncompressedData.array(), computeOffset(uncompressedData), uncompressedData.remaining()); } return ByteBuffer.wrap(baos.toByteArray()); }
@Override ByteBuffer compress(ByteBuffer uncompressedData) throws IOException { ByteArrayOutputStream baos = getOutputBuffer(uncompressedData.remaining()); BZip2CompressorOutputStream outputStream = new BZip2CompressorOutputStream(baos); try { outputStream.write(uncompressedData.array()); } finally { outputStream.close(); } ByteBuffer result = ByteBuffer.wrap(baos.toByteArray()); return result; }
@Override public ByteBuffer compress(ByteBuffer uncompressedData) throws IOException { ByteArrayOutputStream baos = getOutputBuffer(uncompressedData.remaining()); BZip2CompressorOutputStream outputStream = new BZip2CompressorOutputStream(baos); try { outputStream.write(uncompressedData.array(), uncompressedData.position(), uncompressedData.remaining()); } finally { outputStream.close(); } ByteBuffer result = ByteBuffer.wrap(baos.toByteArray()); return result; }
public OutputStream openNext() throws IOException { output.nextFile(); return new BZip2CompressorOutputStream(output, task.getLevel()); }
@Override public byte[] deflate(InputStream data) throws CompressionException { ByteArrayOutputStream out = new ByteArrayOutputStream(); BZip2CompressorOutputStream compressor = null; try { out = new ByteArrayOutputStream(); compressor = new BZip2CompressorOutputStream(out); IOUtils.copy(data, compressor); compressor.finish(); } catch (IOException e) { throw new CompressionException(CompressionConstants.DECODING_ERROR + getContentEncodingName(), e); } finally { if (compressor != null) { IOUtils.closeQuietly(compressor); } } return out.toByteArray(); } }
@Test public void testDecompressBzip2() throws IOException { final File tmpDir = temporaryFolder.newFolder("testDecompressBzip2"); final File bzFile = new File(tmpDir, testFile.getName() + ".bz2"); Assert.assertFalse(bzFile.exists()); try (final OutputStream out = new BZip2CompressorOutputStream(new FileOutputStream(bzFile))) { ByteStreams.copy(new FileInputStream(testFile), out); } try (final InputStream inputStream = CompressionUtils.decompress(new FileInputStream(bzFile), bzFile.getName())) { assertGoodDataStream(inputStream); } }
@Test public void testBzip2Compressor() throws IOException, InterruptedException, CompressionException, ExecutionException { StreamingCompressor compressor = new Bzip2Compressor(_executor); final byte[] origin = new byte[BUF_SIZE]; Arrays.fill(origin, (byte)'c'); ByteArrayOutputStream out = new ByteArrayOutputStream(); BZip2CompressorOutputStream bzip = new BZip2CompressorOutputStream(out); IOUtils.write(origin, bzip); bzip.close(); byte[] compressed = out.toByteArray(); testCompress(compressor, origin, compressed); testDecompress(compressor, origin, compressed); testCompressThenDecompress(compressor, origin); }
@Test public void testBzip2Compressor() throws IOException, InterruptedException, CompressionException, ExecutionException { StreamingCompressor compressor = new Bzip2Compressor(_executor); final byte[] origin = new byte[BUF_SIZE]; Arrays.fill(origin, (byte)'c'); ByteArrayOutputStream out = new ByteArrayOutputStream(); BZip2CompressorOutputStream bzip = new BZip2CompressorOutputStream(out); IOUtils.write(origin, bzip); bzip.close(); byte[] compressed = out.toByteArray(); testCompress(compressor, origin, compressed); testDecompress(compressor, origin, compressed); testCompressThenDecompress(compressor, origin); }
switch (compression) { case BZIP2: os = new BZip2CompressorOutputStream(os); break; case GZIP:
@Override public void save(Factory f, OutputStream out) throws IOException { if (f.getEnvironment().getCompressionType() == CompressionType.GZIP) { out = new GZIPOutputStream(out); } else if (f.getEnvironment().getCompressionType() == CompressionType.LZMA) { out = new LZMACompressorOutputStream(out); } else if (f.getEnvironment().getCompressionType() == CompressionType.BZIP2) { out = new BZip2CompressorOutputStream(out); } try (ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(out))) { oos.writeObject(f); oos.flush(); } }
/** * perform the BZip2 compression operation. */ @Override public void compress() throws ArchiverException { try { zOut = new BZip2CompressorOutputStream( bufferedOutputStream( fileOutputStream( getDestFile() ) ) ); // BUffering of the source stream seems to have little/no impact compress( getSource(), zOut ); } catch ( IOException ioe ) { String msg = "Problem creating bzip2 " + ioe.getMessage(); throw new ArchiverException( msg, ioe ); } }
private OutputStream compress( TarCompressionMethod tarCompressionMethod, final OutputStream ostream ) throws IOException { if ( TarCompressionMethod.gzip.equals( tarCompressionMethod ) ) { return Streams.bufferedOutputStream( new GZIPOutputStream( ostream ) ); } else if ( TarCompressionMethod.bzip2.equals( tarCompressionMethod ) ) { return new BZip2CompressorOutputStream( bufferedOutputStream( ostream ) ); } else if ( TarCompressionMethod.snappy.equals( tarCompressionMethod ) ) { return new SnappyOutputStream( bufferedOutputStream( ostream ) ); } else if ( TarCompressionMethod.xz.equals( tarCompressionMethod ) ) { return new XZCompressorOutputStream( bufferedOutputStream( ostream ) ); } return ostream; }
@Override public CompressorOutputStream create(File compressedFile) throws IOException { OutputStream os = new FileOutputStream(compressedFile); try { return new BZip2CompressorOutputStream(os); } catch (IOException ioe) { try { os.close(); } catch (Exception e) {} throw ioe; } }
@Override public Writer openStream() throws IOException { return new BufferedWriter(new OutputStreamWriter(new BZip2CompressorOutputStream(new FileOutputStream(file, append)))); } };