package edu.berkeley.nlp.util; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; /** * Just like IOUtils, but reads and writes .gz files. File name extensions are required! * * THIS IS NOW OBSOLETE, THANK GOODNESS! * * @author denero */ public class GZIPUtils { private GZIPUtils() {} // No instantiation // openIn public static BufferedReader openIn(String path) throws IOException { return openIn(new File(path)); } public static BufferedReader openIn(File path) throws IOException { return new BufferedReader(CharEncUtils.getReader(getInputStream(path))); } public static InputStream getInputStream(String path) throws IOException { return getInputStream(new File(path)); } public static InputStream getInputStream(File path) throws IOException { InputStream instream; if (path.getName().endsWith(".gz")) { instream = new GZIPInputStream(new FileInputStream(path)); } else { instream = new FileInputStream(path); } return instream; } public static BufferedReader openInEasy(String path) { if (StrUtils.isEmpty(path)) return null; return openInEasy(new File(path)); } public static BufferedReader openInEasy(File path) { if (path == null) return null; try { return openIn(path); } catch (Exception e) { return null; } } public static BufferedReader openInHard(String path) { return openInHard(new File(path)); } public static BufferedReader openInHard(File path) { try { return openIn(path); } catch (Exception e) { throw new RuntimeException(e); } } // openOut public static PrintWriter openOut(String path) throws IOException { return openOut(new File(path)); } public static PrintWriter openOut(File path) throws IOException { OutputStream outstream; if (path.getName().endsWith(".gz")) { outstream = new GZIPOutputStream(new FileOutputStream(path)); } else { outstream = new FileOutputStream(path); } return new PrintWriter(CharEncUtils.getWriter(outstream)); } public static PrintWriter openOutEasy(String path) { if (StrUtils.isEmpty(path)) return null; return openOutEasy(new File(path)); } public static PrintWriter openOutEasy(File path) { if (path == null) return null; try { return openOut(path); } catch (Exception e) { return null; } } public static PrintWriter openOutHard(String path) { return openOutHard(new File(path)); } public static PrintWriter openOutHard(File path) { try { return openOut(path); } catch (Exception e) { throw new RuntimeException(e); } } }