要解析文件入库,通过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的日志文件。