歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java中從末行逐行向上讀取文件

Java中從末行逐行向上讀取文件

日期:2017/3/1 10:08:13   编辑:Linux編程
/**************
* Test
*
* @param args
*/
public static void main(String[] args) {
try {
// 下面是先寫文件, 向文件尾追加, 若文件不存在則自動創建文件
FileWriter fw = new FileWriter("C:/test.txt", true); // 用FileWriter打開文件
PrintWriter pw = new PrintWriter(fw); // 用寫指針加載文件
String[] str = { "" }; // 要寫入的字符串
for (String index : str) {
pw.println(index); // 每次都向文件尾追加
}
pw.close(); // 關閉
fw.close(); // 關閉

// 下面定位文件末行, 一行一行向上讀取
RandomAccessFile raf = new RandomAccessFile("C:/test.txt", "r"); // 該類可以定位文件,
// 是java
// IO類中唯一可以用來定位的
long len = raf.length(); // 獲得文件的長度,以便定位末尾
if (len <= 3) { // 判斷文件是否為空
System.out.println("the flie is NULL!");
return;
}
long pos = len - 1; // 定位文件尾
while (pos > 0) { // 判斷文件是否到達頭
--pos; // 一個字符一個字符的向前移動指針
raf.seek(pos); // 定位文件指針所指的位置
if (raf.readByte() == '\n') { // 如果是換行符,就可以讀取該行了
System.out.println(raf.readLine());
}
}
raf.seek(pos); // 最後還需要讀取第一行
System.out.println(raf.readLine());
raf.close(); // 關閉

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.exit(0);
return;
}
Copyright © Linux教程網 All Rights Reserved