NIO按行读取文件

要解析文件入库,通过NIO方式直接读取日志文件一行一行的处理

日志是通过log4j写入的,通过log4j的方法将日志信息写入到文件,每行有一个换行符

结论:

jdk1.6暂时没有找到合适的方法(只能使用传统方法吧)

jdk1.7可以按行读取文件,jdk1.7的api中有一个Files类可以处理 readAllLines()可以处理

参考资料:http://www.kodejava.org/examples/813.html

package org.kodejava.example.nio;

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class ReadFileAsListDemo {
    public static void main(String[] args) {
        String fileName = "core-sample/src/main/resources/data.txt";

        try {
            List<String> lines = Files.readAllLines(Paths.get(fileName),
                    Charset.defaultCharset());
            for (String line : lines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

刚才在StackOverFlow中看到一个BT的问题,15G的日志文件。

猜你喜欢

转载自paladin1988.iteye.com/blog/1847415