001package org.anarres.lzo.commons; 002 003import java.io.IOException; 004import java.io.OutputStream; 005import javax.annotation.Nonnull; 006import org.anarres.lzo.LzoAlgorithm; 007import org.anarres.lzo.LzoCompressor; 008import org.anarres.lzo.LzoLibrary; 009import org.anarres.lzo.LzoOutputStream; 010import org.apache.commons.compress.compressors.CompressorOutputStream; 011 012/** 013 * 014 * @author shevek 015 */ 016public class LzoCompressorOutputStream extends CompressorOutputStream { 017 018 private final LzoOutputStream out; 019 020 public LzoCompressorOutputStream(@Nonnull OutputStream out) { 021 this.out = new LzoOutputStream(out); 022 } 023 024 public LzoCompressorOutputStream(@Nonnull OutputStream out, @Nonnull LzoCompressor compressor) { 025 this.out = new LzoOutputStream(out, compressor); 026 } 027 028 public LzoCompressorOutputStream(@Nonnull OutputStream out, @Nonnull LzoAlgorithm algorithm) { 029 this.out = new LzoOutputStream(out, LzoLibrary.getInstance().newCompressor(algorithm, null)); 030 } 031 032 @Override 033 public void write(int b) throws IOException { 034 out.write(b); 035 } 036 037 @Override 038 public void write(byte[] b, int off, int len) throws IOException { 039 out.write(b, off, len); 040 } 041}