1 package org.davidmoten.io.extras;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.io.OutputStream;
6 import java.util.zip.GZIPInputStream;
7 import java.util.zip.GZIPOutputStream;
8
9 import org.davidmoten.io.extras.internal.TransformedInputStream;
10
11 public final class IOUtil {
12
13 private static final int DEFAULT_BUFFER_SIZE = 8192;
14
15 private IOUtil() {
16
17 }
18
19 public static InputStream pipe(InputStream is, IOFunction<? super OutputStream, ? extends OutputStream> transform,
20 int bufferSize) throws IOException {
21 return new TransformedInputStream(is, transform, bufferSize);
22 }
23
24 public static InputStream pipe(InputStream is, IOFunction<? super OutputStream, ? extends OutputStream> transform)
25 throws IOException {
26 return pipe(is, transform, DEFAULT_BUFFER_SIZE);
27 }
28
29 public static InputStream gzip(InputStream is) throws IOException {
30 return pipe(is, o -> new GZIPOutputStream(o));
31 }
32
33 public static InputStream gunzip(InputStream is) throws IOException {
34 return new GZIPInputStream(is);
35 }
36
37 }