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  ,如需转载请自行联系原作者
相关文章
|
7天前
|
IDE Java 编译器
使用Java分割PDF文件
使用Java分割PDF文件
16 1
|
1天前
|
Java API 开发者
Java中的文件I/O操作详解
Java中的文件I/O操作详解
|
2天前
|
Java
Error:java: 错误: 无效的源发行版:13, 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。
Error:java: 错误: 无效的源发行版:13, 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。
|
3天前
|
Java Unix 大数据
解密tar文件解压的Java实现技术
解密tar文件解压的Java实现技术
|
3天前
|
Java
如何在Java中优雅地处理大文件?
如何在Java中优雅地处理大文件?
|
3天前
|
Java 机器人 程序员
优化Java中文件读写的性能策略
优化Java中文件读写的性能策略
|
4天前
|
Java
用java 将 jb2 文件转图片的方法
用java 将 jb2 文件转图片的方法
|
8天前
|
存储 监控 Java
深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信
深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信
|
8天前
|
XML Java 定位技术
详尽分享经纬坐标(BLH)数据创建.kml文件小工具设计Java版
详尽分享经纬坐标(BLH)数据创建.kml文件小工具设计Java版
12 0
|
9天前
|
Java 机器人 程序员
Java中的文件I/O操作:流、读写和NIO详解
Java中的文件I/O操作:流、读写和NIO详解