欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文本文件读取 -- 消除样板式代码工具类 博客分类: 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);
            }
        });
    }
}

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