随笔 - 147  文章 - 71  trackbacks - 0
<2011年12月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(1)

随笔分类(146)

随笔档案(147)

文章分类(28)

文章档案(28)

喜欢的Blog

搜索

  •  

最新评论

阅读排行榜

评论排行榜

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

public class FromEndRF {
  
public static void read(String filename) {
    read(filename, 
"GBK");
  }

  
public static void read(String filename, String charset) {

    RandomAccessFile rf 
= null;
    
try {
      rf 
= new RandomAccessFile(filename, "r");
      
long len = rf.length();
      
long start = rf.getFilePointer();
      
long nextend = start + len - 1;
      String line;
      rf.seek(nextend);
      
int c = -1;
      
while (nextend > start) {
        c 
= rf.read();
        
if (c == '\n' || c == '\r') {
          line 
= rf.readLine();
          
if (line != null) {
            System.out.println(
new String(line.getBytes("ISO-8859-1"), charset));
          }
else {
            System.out.println(line);
// 输出为null,可以注释掉
          }
          nextend
--;
        }
        nextend
--;
        rf.seek(nextend);
        
if (nextend == 0) {// 当文件指针退至文件开始处,输出第一行
          System.out.println(new String(rf.readLine().getBytes("ISO-8859-1"), charset));
        }
      }
    } 
catch (FileNotFoundException e) {
      e.printStackTrace();
    } 
catch (IOException e) {
      e.printStackTrace();
    } 
finally {
      
try {
        
if (rf != null)
          rf.close();
      } 
catch (IOException e) {
        e.printStackTrace();
      }
    }
  }

  
public static void main(String args[]) {
    read(
"d:\\2.txt""gbk");
  }
}
posted on 2011-12-27 11:44 飞翔天使 阅读(1765) 评论(0)  编辑  收藏 所属分类: java

只有注册用户登录后才能发表评论。


网站导航: