要解析文件入库,通过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的日志文件。
相关推荐
本类,是专门为了处理大文件,按行读取开发的类。 采用读文件的缓存 fbb 1024*5 行缓存 bb 256 字节 设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件...
使用nio byteBuffer 实现按行读取文件(大文件) 在window/linux/macOS上均测试通过 对于中文乱码也已处理成功 完整注释,可随需求更改 有问题请邮件:mly610865580@126.com
本类,是专门为了处理大文件,按行读取开发的类。 采用读文件的缓存 fbb 1024*5 行缓存 bb 256 字节 设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 ...
总的来说,上述代码提供了一个自定义的NIO解决方案来按行读取文件,尽管Java NIO本身并不直接支持这个功能。这种实现方式充分利用了NIO的内存映射特性,提高了读取效率,但同时也需要开发者关注潜在的兼容性和资源...
- **定义文件范围**:通过`begin_fz`、`begin_fm`、`end_fz`、`end_fm`等变量定义了要读取文件的起始位置和结束位置,以便分块读取。 2. **内存映射文件创建** - 使用`new File(fileName)`创建`File`对象。 - `...
使用 io和nio 各个方式进行文件拷贝;...使用nio+byteBuffer 实现按行读取文件(大文件),在window/linux/macOS上均测试通过,对于中文乱码也已处理成功 完整注释,可随需求更改 有问题请邮件:mly610865580@126.com
为了高效地处理这类问题,我们可以利用Java的`java.nio`包中的BufferedReader和FileChannel等类,实现按行读取大文件,并将其内容解析后存储到数据库中。本文将详细讲解这一过程。 首先,我们需要了解`java.nio`包...
简单的用Java的NIO读取文件的程序,给大家参考。
NIO_RandomAccessFile_多线程读本地CSV文件(java==> google guava包ListenableFuture) reader里有个main函数,更改文件路径后,直接运行即可
4. **非阻塞读取**:服务器端使用Selector监听读事件,当有数据可读时,读取ByteBuffer数据并保存到临时文件或直接写入目标位置。 5. **文件合并**:当所有文件块都接收完毕,服务器端根据接收到的文件名信息,将...
二、使用Java NIO读取文件 在Java NIO中,读取文件主要涉及FileChannel和ByteBuffer。以下是一个简单的示例: ```java import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels....
首先,创建FileChannel,然后分配合适的缓冲区大小,通过通道读取文件到缓冲区,处理完缓冲区内的数据后再写入另一个文件或网络。利用选择器可以同时处理多个文件,实现并行操作,进一步提升效率。 7. 示例代码: ...
Java多线程读大文件 java多线程写文件:多线程往队列中写入数据
在Java NIO中,数据的读取和写入都是通过通道(Channel)进行的。通道可以理解为连接到I/O设备的桥梁,例如文件、网络套接字等。要使用NIO写文件,首先需要获取FileChannel对象,这可以通过`FileOutputStream`的`...
在这个主题中,我们将深入探讨Java NIO如何用于写文件,特别是在处理大数据文件时如何提高性能。 首先,理解Java NIO的基本概念非常重要。NIO中的“N”代表“非阻塞”,这意味着在进行I/O操作时,程序可以继续执行...
JDK1.7 之 java.nio.file.Files 读取文件仅需一行代码实现 java.nio.file.Files 类是 JDK1.7 中引入的新的文件操作类,该类包含了许多有用的方法来操作文件。其中,Files.readAllBytes(Path) 方法可以将整个文件...
本篇文章将聚焦于如何使用Java的NIO(New Input/Output)包中的RandomAccessFile类来实现多线程读取DBF文件,这在处理大型文件时能显著提升效率。 1. **Java NIO介绍** Java NIO是一个非阻塞I/O模型,提供了与标准...
Java中的`BufferedReader`类提供了按行读取文件内容的能力,这对于处理文本文件非常有用。例如: ```java BufferedReader br = new BufferedReader(new FileReader(fileName)); String line; while ((line = br...
2. 使用ProgressMonitorInputStream读取文件:我们使用了ProgressMonitorInputStream来读取大文件,这样可以监控文件的读取进度。 3. 使用多线程技术:我们使用了多线程技术来读取大文件,以提高响应速度。当按钮被...
文件下载服务则相反,服务器使用FileChannel读取文件内容,然后通过Socket发送给客户端,客户端接收数据并写入本地文件系统。 文件列表展示服务可能涉及到目录遍历和文件信息的获取。在Java中,可以使用java.nio....