java代码如何读取大文件呢?
下文笔者讲述使用java代码读取大文件的方法分享,如下所示
今天接到一个需求,需对上百G的日志文件进行分析
今天接到一个需求,需对上百G的日志文件进行分析
那么这么大的日志文件,肯定不可以全部读取到内存中
那么我们是否可以一行一行的扫描呢?下文笔者将一一道来,如下所示
实现思路:
方式1:
使用java.util.Scanner类扫描文件的内容
对文件内容进行一行一行连续地读取
这种方式,就可减少内存的使用
方式2:
借助Apache Commons IO组件
使用LineIterator it = FileUtils.lineIterator(theFile, "UTF-8");
也可以达到一行一行的读取文件的效果
例:
private void readBigFile(String fileName) {
try {
System.out.println("开始读取并分析文件"+fileName);
File file = new File(fileName);
// System.out.println(file.getAbsolutePath());
Scanner sc = new Scanner(file);
while (sc.hasNext()) {
String json = sc.nextLine();
//将单行解析成实体
logEntity log= jieXiJson(json);
//分析每行的日志
addJSONInfo(log);
}
System.out.println("读取并分析文件"+fileName+"结束");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


