博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java读取.txt文件的最后一行
阅读量:6452 次
发布时间:2019-06-23

本文共 1511 字,大约阅读时间需要 5 分钟。

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
 ,如需转载请自行联系原作者
你可能感兴趣的文章
mysql myisam引擎_试题-说一下mysql的MyISAM引擎 - 拿OFFER
查看>>
mysql 单机 最高负载_haproxy(单机)+mysql集群负载均衡
查看>>
oldpassword mysql_mysql OLD_PASSWORD's problem | 2hei's site
查看>>
python grequests极限_在Python中利用grequests实现一个并发请求功能
查看>>
python通过sum函数实现1到n的和_Python定义函数实现累计求和操作
查看>>
python隐藏源代码_隐身 对 《Python源码剖析》 的评论 | 豆瓣阅读
查看>>
华南x79主板u盘装系统教程_华南x79主板怎么装win7系统|华南x79主板装win7及BIOS设置...
查看>>
结构化查询语句简称mysql_整理MySql常用查询语句
查看>>
java spring 数据库连接_Spring连接数据库的几种常用的方式
查看>>
java list 分组数量_java8 集合 多字段 分组 统计个数代码
查看>>
java8 泛型 null 报错_Java8自定义带泛型的函数式接口
查看>>
java aqs面试题_Java 并发面试题:说下你对 AQS 的理解?
查看>>
java定义两个动物抽象类 程序_java抽象类和接口详解
查看>>
mysql中builder_Laravel - MySQL数据库的使用详解2(Query Builder用法1:查询操作)
查看>>
java 值传递_Java只有值传递
查看>>
java wcf_Java调用wcf
查看>>
java集合表_Java集合—List列表
查看>>
java存钱_用Java编写一个简单的存款
查看>>
grub ubuntu关闭gnu_VMWare启动Ubuntu GNU grub 怎么进入界面系统
查看>>
java创建界面四句代码_Java并发的四句箴言
查看>>