文本文件读取 -- 消除样板式代码工具类 博客分类: java BufferedReaderio字符流文本文件读取
程序员文章站
2024-03-16 19:11:58
...
本人才疏学浅,但转载注明出处:
http://waitingkkk-163-com.iteye.com/admin/blogs/2233450
这个工具类是我自己写的,在日常工作中经常用到,尤其是我经常需要写一些读取文件的工具方法,比如文件对比,读入文件中的字段名生成sql脚本等。
package io; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; /** * Created by vincent on 2015/8/6. */ public class FileUtil { public static void readString(File targetFile, LineHandler lineHandler) throws Exception { BufferedReader reader = new BufferedReader(new FileReader(targetFile)); try{ int lineNum = 1; String lineContent = null; while((lineContent = reader.readLine()) != null){ lineHandler.handle(lineNum, lineContent); lineNum ++; } } finally { if(reader != null) reader.close(); } } interface LineHandler{ void handle(int lineNum, String lineContent); } }
调用方法:
package io; import java.io.File; /** * Created by vincent on 2015/8/6. */ public class Client { public static void main(String args[]) throws Exception { File temp = new File("g:/temp/temp.txt"); FileUtil.readString(temp, new FileUtil.LineHandler() { @Override public void handle(int lineNum, String lineContent) { System.out.println(lineNum + " -> " + lineContent); } }); } }
开流关流等又繁琐又容易遗漏的地方被抽象到工具方法中,调用者只需关心读到的每一行文本的内容处理,也是文本读取的核心业务。