去api中查查这个类
RandomAccessFile
的运用

解决方案 »

  1.   

    用nio包中的FileChannel,可以对文件作一个内存映射,效率较高。
      

  2.   

    用RandomAccessFile
    从后往前seek()
      

  3.   

    嗯RandomAccessFile的处理机理跟流是不一样,可以满足你的要求
      

  4.   

    用RandomAccessFile
    从后往前seek(),seek 到了,怎么delete那行\n?
    用哪个方法是删除一行或一个字符的?
      

  5.   

    // DeleteLastLine.java
    import java.io.*;public class DeleteLastLine 
    {
    public static void main(String [] args) throws IOException
    {
    RandomAccessFile raf = new RandomAccessFile("DeleteLastLine.java", "rw");
    long len = raf.length();
    raf.setLength(len - 2);
    raf.close();
    }
    }------------------------------------------------------------------------------
      

  6.   

    RandomAccessFile raf = new RandomAccessFile("c:/data.text", "rw");
    long len = raf.length();
    long lastLineLength = ?
    raf.setLength(len - lastLineLength);用raf.seek(len)方法定位current offset in this file从后往前找'\n'就能得到最后一行的长度