`
小懒蛋
  • 浏览: 30939 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

文本文件读取 -- 消除样板式代码工具类

    博客分类:
  • java
阅读更多

 

本人才疏学浅,但转载注明出处:

 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);
            }
        });
    }
}

 开流关流等又繁琐又容易遗漏的地方被抽象到工具方法中,调用者只需关心读到的每一行文本的内容处理,也是文本读取的核心业务。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics