本人才疏学浅,但转载注明出处:
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);
}
});
}
}
开流关流等又繁琐又容易遗漏的地方被抽象到工具方法中,调用者只需关心读到的每一行文本的内容处理,也是文本读取的核心业务。