JAVA——读取文本文件的倒数第N行(模拟Linux中tail命令)
解决方案
1、引入jar包commons-io.jar
/*** 读取文件的倒数第3行,并打印其内容*/import java.io.File;
import java.io.IOException;import org.apache.commons.io.input.ReversedLinesFileReader;public class ReversedLinesFileReaderExample {public static void main(String[] args) throws IOException {File file = new File("D:\\file1.txt");int n_lines = 3;int counter = 1;//构造方法 ReversedLinesFileReader(final File file, final int blockSize, final String encoding) ReversedLinesFileReader object = new ReversedLinesFileReader(file, 4096, "UTF-8");while (counter <= n_lines) {if (counter == n_lines) {System.out.println(object.readLine());}object.readLine();//读取下一行counter++;}}}
2、 RandomAccessFile类
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;public class FromEndRF {public static void read(String filename) {read(filename, "GBK");}public static void read(String filename, String charset) {RandomAccessFile rf = null;try {rf = new RandomAccessFile(filename, "r");long len = rf.length();long start = rf.getFilePointer();long nextend = start + len - 1;String line;rf.seek(nextend);int c = -1;while (nextend > start) {c = rf.read();if (c == '\n' || c == '\r') {line = rf.readLine();if (line != null) {System.out.println(new String(line.getBytes("ISO-8859-1"), charset));}else {System.out.println(line);}nextend--;}nextend--;rf.seek(nextend);if (nextend == 0) {// 当文件指针退至文件开始处,输出第一行System.out.println(rf.readLine());}}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {if (rf != null)rf.close();} catch (IOException e) {e.printStackTrace();}}}public static void main(String args[]) {read("d:\\2.txt", "gbk");}
}
参考文章
使用java读取文本文件的倒数第N行
JAVA如何实现从最后一行读取文件
JAVA——读取文本文件的倒数第N行(模拟Linux中tail命令)相关推荐
- 使用java读取文本文件的倒数第N行
本文主要介绍使用java语言读取文本文件的倒数第N行,并且打印其内容. 1.导入jar包 在工程中导入commons-io.jar,版本为2.4. 2.关键代码 /*** 读取文件的倒数第3行,并打印 ...
- Java读取文本文件的内容
Java读取文本文件的内容 文本内容如下: 下面展示一些 内联代码片. package my; import java.io.File; import java.io.FileInputStream; ...
- Java 读取文本文件
文章目录 File FileReader InputStreamReader BufferedReader(解决方法在这里) 解决中文乱码 FileInputStream 我想用Java 读取文本文件 ...
- Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...
原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...
- JAVA读取文本文件内容以流的形式返回到前端
JAVA读取文本文件内容以流的形式返回到前端 此方法放Controller ServletOutputStream out = null;ByteArrayOutputStream baos = nu ...
- linux中wc命令_Linux wc命令–文件中字,行,字符的计数
linux中wc命令 Linux wc command is used to count the number of words, lines, and characters in a file. T ...
- 匹配行linux中grep命令的使用
最近个人几篇文章介绍了改匹配行的文章. 关联文章的地址 linux中grep命令的用使 grep (global search regular expression(RE) and print out ...
- linux查找文件夹命令_如何在Linux中使用命令行查找文件和文件夹
linux查找文件夹命令 Most people use a graphical file manager to find files in Linux, such as Nautilus in Gn ...
- linux安装virtualbox命令,在Linux中从命令行查找Virtualbox Version的方法
在我的Ubuntu无头服务器上使用Virtualbox时,我需要找到Virtualbox的版本,如果是GUI,我可以通过导航到Virtualbox->About->Help轻松找到它,但我 ...
最新文章
- 【22,23节】Django的GET和POST属性笔记
- EXP-00091错误的说明和解决方法
- Linux socket本地进程间通信之UDP
- Docker的容器管理
- linux运行级别debian,Debian的运行级别
- 2022年全球及中国工业用真空电缆行业十四五产能需求与投资战略研究报告
- 四个变量的图表怎么做_年终总结必备:Excel双色图表怎么做?数据表达更直观...
- eclipse不支持泛型_C++ 泛型编程(一)
- 最近写SQL老出错!
- 【暴力】MSWORLD
- php试题及答案 博客,转php面试题及我的答案(一)
- 何为父组件子组件、props作用、slot插槽
- EJB3.0学习笔记---JBOSS 7.1.1 Final版本安装与配置
- VS2008中MFC界面编程Caption中文全是乱码的解决办法 -转载
- WPF在DLL中读取Resource的方法
- caffe的Matlab接口的使用方法
- nginx 服务器重启命令,关闭(转)
- C. Banh-mi
- Tensorflow小白实战系列
- Axure 9元件使用
热门文章
- ora-24811提供写入的数据少于指定的数据_C++开源、高性能时序数据库pinusdb
- flask html下拉列表,如何使用Flask和HTML从python列表创建下拉菜单
- sql server 链接服务器 改访问接口_跨服务器链接数据库?其实很简单!(上)
- #中delay函数_ECBM系列教程3:闪烁灯——delay函数的用法。
- Navicat mysql 加索引_mysql 索引 (Navicat添加索引)
- long 雪花算法_海量数据分库分表方案(一)算法方案
- 【小白学习keras教程】三、Kears中常见模型层Padding、Conv2D、MaxPooling2D、Flatten和Dense
- 七、Java编码字符集和转义符介绍
- python实现条件匹配_python3 re如何匹配满足条件的选项?
- 节省显存新思路,在PyTorch里使用2 bit激活压缩训练神经网络