java读取.txt文件的最后一行

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
public  static  void  main(String[] args)  throws  Exception {  
   File file =  new  File( "E:/a.txt" );  // 100M  
   long  start = System.currentTimeMillis();  
   String lastLine = readLastLine(file,  "gbk" );  
   long  delt = System.currentTimeMillis() - start;  
   System.out.println(lastLine);  
   System.out.println( "读取时间(毫秒):"  + delt);  
   
   file =  new  File( "E:/b.txt" ); // 仅一行文字  
   start = System.currentTimeMillis();  
   lastLine = readLastLine(file,  "gbk" );  
   delt = System.currentTimeMillis() - start;  
   System.out.println(lastLine);  
   System.out.println( "读取时间(毫秒):"  + delt);  
}  
   
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 ;  
}
















本文转自wauoen51CTO博客,原文链接:http://blog.51cto.com/7183397/1860508  ,如需转载请自行联系原作者
相关文章
|
3天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
16 0
|
8天前
|
Java Unix Windows
|
12天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
47 3
|
1天前
|
存储 监控 Java
如何在Java中实现等待文件修改后再读取数据的功能?
如何在Java中实现等待文件修改后再读取数据的功能?
4 0
|
1天前
|
存储 Java 数据格式
Java实战:轻松掌握文件重命名与路径提取技巧
Java实战:轻松掌握文件重命名与路径提取技巧
7 0
|
1天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
7 0
|
4天前
|
存储 Java Linux
【Java EE】 文件IO的使用以及流操作
【Java EE】 文件IO的使用以及流操作
|
5天前
|
存储 缓存 安全
【专栏】如何在 Java 中创建临时文件?
【4月更文挑战第28天】本文介绍了Java中创建临时文件的两种方法:使用`File.createTempFile`和自定义创建。`File.createTempFile`能生成唯一文件名,但默认不自动删除;自定义创建则提供更大灵活性,但需手动管理。临时文件常用于数据缓存、文件上传下载和日志记录,使用时需注意文件清理、唯一性和权限设置。
|
7天前
|
存储 前端开发 Java
Java实现文件分片上传
Java实现文件分片上传
8 0
|
12天前
|
Java 测试技术 持续交付
云效产品使用常见问题之通过流水线构建的java代码,在docker文件里拿到失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。