java读取文件后n行
来源:互联网 发布:tcp压力测试工具 mac 编辑:程序博客网 时间:2024/05/20 23:57
public class ReadFile { //Main函数,程序入口 public static void main(String[] args) { //调用读取方法,定义文件以及读取行数 List<String> list = readLastNLine(new File("D:/1.txt"), 5L); if (list != null) { for (String str : list) { System.out.println(str + "<br>"); } } } /** * 读取文件最后N行 * <p> * 根据换行符判断当前的行数, * 使用统计来判断当前读取第N行 * <p> * PS:输出的List是倒叙,需要对List反转输出 * * @param file 待文件 * @param numRead 读取的行数 * @return List<String> */ public static List<String> readLastNLine(File file, long numRead) { // 定义结果集 List<String> result = new ArrayList<String>(); //行数统计 long count = 0; // 排除不可读状态 if (!file.exists() || file.isDirectory() || !file.canRead()) { return null; } // 使用随机读取 RandomAccessFile fileRead = null; try { //使用读模式 fileRead = new RandomAccessFile(file, "r"); //读取文件长度 long length = fileRead.length(); //如果是0,代表是空文件,直接返回空结果 if (length == 0L) { return result; } else { //初始化游标 long pos = length - 1; while (pos > 0) { pos--; //开始读取 fileRead.seek(pos); //如果读取到\n代表是读取到一行 if (fileRead.readByte() == '\n') { //使用readLine获取当前行 String line = new String(fileRead.readLine().getBytes("ISO-8859-1"), "utf-8"); //保存结果 result.add(line); //打印当前行 //System.out.println(line); //行数统计,如果到达了numRead指定的行数,就跳出循环 count++; if (count == numRead) { break; } } } if (pos == 0) { fileRead.seek(0); result.add(fileRead.readLine()); } } } catch (IOException e) { e.printStackTrace(); } finally { if (fileRead != null) { try { //关闭资源 fileRead.close(); } catch (Exception e) { } } } Collections.reverse(result); return result; }}
0 0
- java读取文件后n行
- java读取文件最后N行
- 读取文件最后N行
- Java读取文件的最后n位
- java读取文件列表后排序
- python读取文件末尾N行
- python读取文件最后n行
- 【tail】查看文件后n行
- java读取文件后修改,并写入到另一个文件
- java-读取文件,过滤敏感字符后生成新文件
- JAVA读取资源文件的N种方法
- java读取资源文件的N种方法
- Java从文件中跳过n个字节读取数据
- java打包成jar后读取外部文件
- java读取文件程序打jar包后出现乱码
- Java按行读取文件
- Java按行读取文件
- java 按行读取文件
- 解决xhsell登录超时问题
- libcurl smtp发送邮件附件大小限制问题
- recycleView添加间隔线
- ubuntu配置tomcat
- 大数据量的文件读写 java nio的完全发挥
- java读取文件后n行
- webview加载网页加载不出来
- 剖析程序的内存布局
- http学习笔记之状态码记录
- 我的2016
- java中常见的异常类
- (最新)iOS APP和证书发布至今最完整的流程
- thinkphp5.0 常量 预定义常量
- python发文本邮件