package org.neo4j.shell.tools.imp.util; import org.neo4j.shell.Output; import org.neo4j.shell.OutputAsWriter; import java.io.*; import java.net.URL; import java.net.URLConnection; import java.util.Objects; /** * Created by mh on 12.07.13. */ public class FileUtils { public static final int MEGABYTE = 1024 * 1024; public static CountingReader readerFor(String fileName) throws IOException { if (fileName==null) return null; if (fileName.startsWith("http") || fileName.startsWith("file:")) { URL url = new URL(fileName); URLConnection conn = url.openConnection(); long size = conn.getContentLengthLong(); Reader reader = new InputStreamReader(url.openStream(),"UTF-8"); return new CountingReader(reader,size); } File file = new File(fileName); if (!file.exists() || !file.isFile() || !file.canRead()) throw new IOException("Cannot open file "+fileName+" for reading."); return new CountingReader(file); } public static PrintWriter getPrintWriter(String fileName, Output out) throws IOException { if (fileName == null) return null; Writer writer = fileName.equals("-") ? new OutputAsWriter(out) : new BufferedWriter(new FileWriter(fileName),MEGABYTE); return new PrintWriter(writer); } }