这是TXT文本的数据,我想取最后一行数据,该如何取呢?大家帮帮忙哈!
4340620940002013|25.00|04990007d1a6|7da41eba86ae|2467517
22001450100059990063|25.00|049900078335|0d5fbdfef99f|2467519
4340620940002013|25.00|04990007d1a6|550c4da7ab07|2467521
22001450100059990063|25.00|049900078335|614d7cb6a934|2467523
4340620940002013|25.00|04990007d1a6|c52cac1a1a30|2467525
4340620940002013|25.00|04990007d1a6|7da41eba86ae|2467517
22001450100059990063|25.00|049900078335|0d5fbdfef99f|2467519
4340620940002013|25.00|04990007d1a6|550c4da7ab07|2467521
22001450100059990063|25.00|049900078335|614d7cb6a934|2467523
4340620940002013|25.00|04990007d1a6|c52cac1a1a30|2467525
java.util.Scanner
判断是否有next..
boolean hasNext()
如果此扫描器的输入中有另一个标记,则返回 true。
如果在此扫描器的输入中存在另一行,则返回 true。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test3 { public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader("E:\\源代码\\ok.txt"));
String line = "";
while((line = br.readLine()) != null){
parse(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} private static void parse(String line) {
Pattern p = Pattern.compile(".+\\|.+\\..+\\|.+\\|.+\\|2467525");
Matcher m = p.matcher(line);
while(m.find()){
System.out.println(m.group());
}
//System.out.println(m.find());
}
//4340620940002013|25.00|04990007d1a6|c52cac1a1a30|2467525
}
Scanner sc=new Scanner(new FileReader("D:\\text.txt"));
String line=null;
while((sc.hasNextLine()&&(line=sc.nextLine())!=null)){
if(!sc.hasNextLine())
System.out.println(line);
}
FileReader input = new FileReader("D:\\test.txt");
BufferedReader br = new BufferedReader(input);
String theline =null;
String s = br.readLine();
while (s!=null) {
theline =s;
s=br.readLine();
}
System.out.println(theline);
1、预算单行的最大长度,比如100个字节
2、取文件的长度,比如5000个字节
3、用RandomAccessFile,读最后的100个字节,即偏移量5000-100
4、从这100个字节,从后往前找换行符
BufferedReader br = new BufferedReader(reader);
int lineNumber=0;
String lastNumberValue="";
while ((s = br.readLine()) != null) {
lineNumber=lineNumber+1;
}
FileReader reader1 = new FileReader(filename);
BufferedReader br1 = new BufferedReader(reader1);
int i=1;
while ((s = br.readLine()) != null&&i<lineNumber) {
lastNumberValue=s;
}
return lastNumberValue;