java的问题,请问我现在有个txt文件,文件很大,可能有10m,一直有人在往里面写入

java的问题,请问我现在有个txt文件,文件很大,可能有10mb,一直有人在往里面写入,我每隔10分钟会去读取一次,但是我想每次能记录一个行号,下次读取的时候直接从上一... java的问题,请问我现在有个txt文件,文件很大,可能有10mb,一直有人在往里面写入,我每隔10分钟会去读取一次,但是我想每次能记录一个行号,下次读取的时候直接从上一次的结束开始往下读。请问有什么比较效率的方法吗?不希望每次都要从头开始循环。 展开
 我来答
readclub读者
推荐于2016-04-28 · 超过30用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:41.7万
展开全部
楼主您好,您可以读取完后,记录本次读取后的偏移量,下次就可以直接从偏移量处开始读取。举个例子:
您C盘下有个文件为:test.txt,内容如下:
what's
your
name?
can
I
help
you?
---------------java代码如下-----------
package com.file.test;
import java.io.IOException;
import java.io.RandomAccessFile;
public class Test
{

public static void main(String[] args) throws Exception
{
RandomAccessFile f = new RandomAccessFile("c:\\test.txt", "rw");
long point = read1(f);   //第一次读取,得到读完后返回的偏移量
read2(f,point);  //第二次读取
}
public static long read1(RandomAccessFile f) throws IOException
{
System.out.println(f.readLine());//打印what's
System.out.println(f.readLine());//打印your
System.out.println(f.readLine());//打印name
return f.getFilePointer(); //返回偏移量
}
public static void read2(RandomAccessFile f,long point) throws IOException
{
f.seek(point); //设置偏移量
System.out.println(f.readLine());//打印can
System.out.println(f.readLine());//打印I
}
}

//希望对你有帮助,不懂的可以再问!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式