优雅的处理以行为读取单元的文件 public interface ReaderHelper { void process(String line);}public static void read(String path, ReaderHelper helper) { BufferedReader reader = null; try { reader = new BufferedReader(new InputSt
public interface ReaderHelper { void process(String line); } public static void read(String path, ReaderHelper helper) { BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(new FileInputStream(path), "UTF-8")); String line; while ((line = reader.readLine()) != null) { helper.process(line); } } catch (Exception e) { throw new RuntimeException("read file exception path[" + path + "].", e); } finally { close(reader); } } //用法 read(url, line -> { System.out.println(line); });优雅的读取并写入文件
public interface WriterHelper { default String process(String line) { return line; } } public static void readAndFlush(String readPath, String writePath, WriterHelper helper) { readAndWrite(readPath, writePath, true, helper); } public static void readAndAdd(String readPath, String writePath, WriterHelper helper) { readAndWrite(readPath, writePath, false, helper); } private static void readAndWrite(String readPath, String writePath, boolean isFlush, WriterHelper helper) { PrintWriter writer = null; BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(new FileInputStream(readPath), "UTF-8")); writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(writePath), "UTF-8"), isFlush); String line; while ((line = reader.readLine()) != null) { writer.println(helper.process(line)); } } catch (Exception e) { throw new RuntimeException("read and write exception read path[" + readPath + "] write path[" + writePath + "].", e); } finally { close(reader); close(writer); } } // 使用 readAndFlush(readPath, writePath, new WriterHelper() { @Override public String process(String line) { line += "---Eugen"; return line; } });