读文件最后一行java_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 读文件最后一行java

读文件最后一行java

 2012/2/16 9:09:59  mozhenghua  程序员俱乐部  我要评论(0)
  • 摘要:写了一个读文件最后一行的算法,主要思想是利用RandomAccessFile这个类一开始先将文件的游标移动到文件最后一个字符,然后逐渐向文件头推进,一旦找到'/r'或者‘/n’的时候就将当前的游标记录下来,这个游标的位置就是文件最后一行的起始位置。这个方法的优点是在处理大文件的时候,效率会高一些。importjava.io.RandomAccessFile;/***@author百岁(baisui@taobao.com)*@date2012-2
  • 标签:文件 Java

写了一个读文件最后一行的算法,主要思想是利用RandomAccessFile 这个类一开始先将文件的游标移动到文件最后一个字符,然后逐渐向文件头推进,一旦找到'/r'或者‘/n’的时候就将当前的游标记录下来,这个游标的位置就是文件最后一行的起始位置。

?

?这个方法的优点是在处理大文件的时候,效率会高一些。

?

import java.io.RandomAccessFile;

/**
 * @author 百岁(baisui@taobao.com)
 * @date 2012-2-15
 */
public class RandomAccessFileTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {

		RandomAccessFile randomAccess = new RandomAccessFile(
				"D:\\tmp\\test.txt", "r");
		boolean eol = false;
		int c = -1;
		long fileLength = randomAccess.length();
		long size = 1;
		ww: while (!eol) {
			long offset = fileLength - (size++);
			randomAccess.seek(offset);
			switch (c = randomAccess.read()) {
			case -1:
			case '\n':
			case '\r':
				randomAccess.seek(offset + 1);
				break ww;
			}
		}

		String line = null;
		while ((line = randomAccess.readLine()) != null) {
			System.out.println(line);
		}

		randomAccess.close();
	}
}
?
发表评论
用户名: 匿名