import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; public class TestReadLastLine { public static void main(String[] args) { List lines = readLastLine(new File("D:\\server.log"), 3); lines.forEach(x -> System.out.println(x)); public static List readLastLine(File file, int numLastLineToRead) { List result = new ArrayList<>(); try (ReversedLinesFileReader reader = new ReversedLinesFileReader(file, StandardCharsets.UTF_8)) { String line = ""; while ((line = reader.readLine()) != null && result.size() < numLastLineToRead) { result.add(line); } catch (IOException e) { e.printStackTrace(); return result; 标签: io java 读取文件 在Java中,我们可以使用Apache Commons IO ReversedLinesFileReader读取File的最后几行。 pom.xml &lt;dependency&gt; &lt;groupId&gt;commons-io&lt;/groupId&gt; &lt;artifactId&gt;commons-io&lt;/artifactId&gt; &lt;...
文件倒叙读取行内容识别文件编码多线程 1.文件倒叙读取的方式 文件倒叙读取行内容参考了许多博客,大体是一种采用RandomAccessFile进行读取,考虑到有线程的开源解决方案,先采用ReversedLinesFileReader类来进行操作,再apache的commons-io依赖中。 emm,考虑到编码问题,推荐采用2.7版本来操作,因为看2.4的源码是不支持gbk编码的。 <dependency> <groupId>commons-io</groupId
当我们在 读取文件 的时候,通常都是从前向后读取,那如果要 读取文件 的 最后 一行内容,要如何操作呢? 顺序遍历读取,直到文件 最后 一行 public static String readLastLineV0(File file) { String lastLine = ""; try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) { String currentLine = ""; 1、首先在pom文件导入依赖 <!--在 Java 中,我们可以使用 Apache Commons IO 的 ReversedLinesFileReader 类 读取文件 的 最后 几行 。 --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId>
最近线上有一个需求,下载系统日志,但是由于tomcat 日志比较大,超过 几百兆甚至几个G。如果用传统方法,将日志文件读取到内存,显然是有问题的。 下面提供一种 截取日志 最后 N行而不会导致内存溢出的方法。使用commons.io 包的ReversedLinesFileReader对象。 代码如下: package ygw.study.play; import org.apache.commons.io.FileUtils; import org.apache.commons.io.input.R.
import java .io.FileNotFoundException; import java .io.IOException; import java .io.RandomAccessFile; public class ReverseRead { public static void main(String[] args) { //调用读取方法,定义文件以及读取行数 List list = readLastNLine(new File("D:/1.txt"), 5L); if (list != null
Java 读取文件 最后 几行 项目里需要读取最新的日志,可是最新的日志都在文件的 最后 几行 ,所以有了这个需求。 百度之后先研究了别人的代码,感觉一是逻辑不太好理解,二是代码偏向于测试,没有办法哪来就用。 所以自己写了这个方法,希望可以给看到的同学带来帮助。也算我自己的一点积累吧。 * 读取文件 最后 几行 * @param filename * @param rows * @thr...