指定行数,可以获取到从这行到文件尾的所有行,分享自大熊。

源文件:

读取最后10行结果

import java.io.File;

import java.io.IOException;

import java.io.RandomAccessFile;

import java.util.ArrayList;

import java.util.List;

/**

*

* 文件读取类

*

* @author 大熊 www.zuidaima.com

* @version [1.0, 2013-7-24]

* @since [面试/1.0]

*/

public class ReadFile

{

//Main函数,程序入口

public static void main(String[] args)

{

//调用读取方法,定义文件以及读取行数

readLastNLine(new File("D:\\apache-tomcat-7.0.40\\RUNNING.txt"), 10L);

}

/**

* 读取文件最后N行

*

* 根据换行符判断当前的行数,

* 使用统计来判断当前读取第N行

*

* PS:输出的List是倒叙,需要对List反转输出

*

* @param file 待文件

* @param numRead 读取的行数

* @return List

*/

public static List readLastNLine(File file, long numRead)

{

// 定义结果集

List result = new ArrayList();

//行数统计

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 = fileRead.readLine();

//保存结果

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)

{

}

}

}

return result;

}

}

原文:http://blog.csdn.net/springmvc_springdata/article/details/43226345

java 读取文件第n行_java读取文件最后N行相关推荐

  1. java读取文件的方法是_Java读取文件方法大全

    Java读取文件方法大全 2011/11/25 9:18:42  tohsj0806  http://tohsj0806.iteye.com  我要评论(0) 摘要:文章来源:http://www.c ...

  2. java获取xlsx某列数据_Java读取Excel指定列的数据详细教程和注意事项

    本文使用jxl.jar工具类库实现读取Excel中指定列的数据. jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的.这套API是纯Java的,并不依赖Windows ...

  3. JAVA读取2g数据的速度_Java 读取大容量excel

    项目要求导入excel, 但是文件很大,一次性读进去会导致内存不足而报错, 下面是我解决的方法: 首先倒入需要的jar org.apache.poi poi-ooxml 3.17 org.apache ...

  4. JAVA随机读写功能实现类_Java 实现文件随机读写-RandomAccessFile

    RandomAccessFile是Java中输入,输出流体系中功能最丰富的文件内容访问类,它提供很多方法来操作文件,包括读写支持,与普通的IO流相比,它最大的特别之处就是支持任意访问的方式,程序可以直 ...

  5. java文件读写的基本类_Java读写文件常用方法

    一.字符流:读写纯文本(txt,csv等), 1 字符流写文件主要用:FileWriter,BufferedWriter,PrintWriter 1.1 测试 FileWriter 写入 privat ...

  6. java遍历文件夹下的_Java遍历文件夹下的所以文件

    利用Java递归遍历文件夹下的所以文件,然后对文件进行其他的操作.如:对文件进行重命名,对某一类文件进行重编码.可以对某一工程下的全部.java文件进行转码成utf-8等 代码如下,这里只对文件进行重 ...

  7. java 获取md5值报错_java获取文件的MD5值

    package com.sichang.util; import java.io.File; import java.io.FileInputStream; import java.math.BigI ...

  8. java 创建文件夹的方法_Java创建文件夹的方法

    Java创建文件夹的方法 /** * 用于创建文件夹的方法 * @param mkdirName */ public void mkdir(String mkdirName) { try { File ...

  9. java实现文件加密与解密_Java实现文件的加密解密功能示例

    本文实例讲述了Java实现文件的加密解密功能分享给大家供大家参考,具体如下: package com.copy.encrypt; import java.io.File; import java.io ...

  10. java 判断是否为cst格式_Java判断文件编码格式

    1:简单判断是UTF-8或不是UTF-8,因为一般除了UTF-8之外就是GBK,所以就设置默认为GBK. 按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理 ...

最新文章

  1. micropython esp8266教程_ESP8266 快速开发指南
  2. 架构杂谈《八》Docker 架构
  3. python字符串前面加f什么意思_Python 字符串前面加u,r,b,f的含义
  4. MYSQL 表 部分数据导出、导入
  5. ECCV 2020 论文大盘点-姿态估计与动作捕捉篇
  6. CVPR 2020 论文大盘点-超分辨率篇
  7. mysql glibc包很大_linux 安装 mysql 的 glibc 包
  8. 2018 CCPC 桂林站(upc复现赛)总结
  9. 文件服务器程序,CuteHttpFileServer(文件共享服务器软件)
  10. Linux-Shell脚本教学
  11. OC 5217欧创芯原装芯片一款连续电感电流导通模 式的降压型 LED 恒流驱动器,SOT23-5 封装
  12. java实现五子棋获胜判断
  13. torch.ones理解
  14. “Failed to load response data“ django@xframe_options_exempt 网站不许 Firefox 显示被嵌入的网页
  15. ctf的flask模板注入config、current_app、url_for和get_flashed_messages(转自浩哥)
  16. 抖音 快手 等短视频自动向下滑动
  17. git服务器+查文件大小,Git项目过大清理(针对大文件)
  18. 比尔·盖茨最新分享:ChatGPT的发展,不止于此
  19. 小学生都能读懂的区块链原理和术语介绍(故事图文)-引自《从零开始自己动手写区块链》
  20. 软件工程与计算II-19-软件测试

热门文章

  1. vue项目webpack配置全局变量
  2. Java获取系统当前时间
  3. 如期而至 | Google Play 2020 年度最佳榜单
  4. background ie8兼容性问题
  5. MATLAB常用绘图方法总结
  6. 基于SpringBoot的CMS内容管理系统
  7. 【HTML5】响应式图片
  8. 上海IB国际学校大盘点,这五所学校这么厉害?
  9. sql sp_password登录名不存在或 权限_什么是SQL注入攻击?怎么预防?
  10. python wordcount_在Hadoop上用Python实现WordCount