天天看點

随機通路流RandomAccessFile 讀取檔案最後一行

随機通路流RandomAccessFile

讀取檔案最後一行

被讀取的檔案有換行 不然會報錯

import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomAccessFileDemo {
	/**  
	 * @author blue 
	 * @date 2020年8月10日 
	 */
	public static void main(String[] args) {
		//讀取指定檔案為最後一行
		try(RandomAccessFile raf=new RandomAccessFile("E:\\test\\test.txt", "r")) {
			//檔案長度
			long pos=raf.length();
			int len=-1;
			boolean flag=true;
			while(flag) { 
				//
				pos--;
				//移動指針
				raf.seek(pos);
				len=raf.read();
				switch (len) {
				case '\n':
				case '\r':
				case -1:
					//說明最後一行讀取完畢
					//重新定位指針   指向最後一行開始的地方  
					raf.seek(pos+1);
					flag=false;
					break;
				default:
					break;
				}
				
			}
			//此時  指針在最後一行的起始位置  
			//raf.readLine()
			System.out.println(new String(raf.readLine().getBytes("ISO-8859-1"), "utf-8"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}