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(); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。