利用RandomAccessFile快速读取文件最后一行
2016-01-11 00:00
369 查看
public static String readLastLine(File file, String charset) throws IOException { if (!file.exists() || file.isDirectory() || !file.canRead()) { return null; } RandomAccessFile raf = null; try { raf = new RandomAccessFile(file, "r"); long len = raf.length(); if (len == 0L) { return ""; } else { long pos = len - 1; while (pos > 0) { pos--; raf.seek(pos); if (raf.readByte() == '\n') { break; } } if (pos == 0) { raf.seek(0); } byte[] bytes = new byte[(int) (len - pos)]; raf.read(bytes); if (charset == null) { return new String(bytes); } else { return new String(bytes, charset); } } } catch (FileNotFoundException e) { } finally { if (raf != null) { try { raf.close(); } catch (Exception e2) { } } } return null; }
相关文章推荐
- Java运行Python脚本的方法
- nginx将日志通过rsyslog保存
- iPhone丢失了怎么办 找回iPhone终极教程
- mysql数据库获得树的节点
- 使用Xtrabackup进行MySQL备份
- MySQL 5.5 服务器变量详解(一)
- 关系型数据库的性能扩展思路及NoSQL产品的选取标准
- MySQL性能优化之一:提高MySQL并发能力的思路
- MySQL 5.5 服务器变量详解(二)
- MySQL 5.5 服务器变量详解(三)
- Hadoop系列之一:大数据存储及处理平台产生的背景
- Hadoop系列之二:大数据、大数据处理模型及MapReduce
- Hadoop系列之三:函数式编程语言和MapReduce
- Hadoop系列之四:MapReduce进阶
- Hadoop系列之五:MapReduce进阶(2)
- Hadoop系列之六:分布式文件系统HDFS
- Hadoop系列之七:分布式文件系统HDFS(2)
- Hadoop系列之八:Hadoop集群
- Hadoop系列之九:Hadoop集群伪分布式模式的实现详解
- Hadoop系列之十:Hadoop配置文件及常用配置参数详解(未完成)