您的位置:程序门 -> java -> j2se / 基础类



如何实时读取一个不断更新的文本文件


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何实时读取一个不断更新的文本文件
发表于:2007-02-27 16:06:21 楼主
生成文本文件的程序是由c开发完成的.   用java可以实现实时读取这个文本文件中的内容吗?  
发表于:2007-02-28 13:55:291楼 得分:0
当然可以,是什么程序创建的文件跟java读文件根本没有任何关系,比如我用音频软件编辑的音乐,难道java不能访问吗?
呵呵~~就要看你是怎么实时读取的方式了
发表于:2007-02-28 14:57:482楼 得分:0
> > 当然可以,是什么程序创建的文件跟java读文件根本没有任何关系,比如我用音频软件编辑的音乐,难道java不能访问吗?
    这点大家都知道.     我的意思是写文本文件的过程已经由c实现了,不用考虑再改用java了.
> > 就要看你是怎么实时读取的方式了
    简单的说,就是一个要从一个不断更新的log文件中实时读取信息显示在画面中.     也可以叫做日志监控.
发表于:2007-03-05 14:13:373楼 得分:0
自问自答,我写了个例子
import   java.io.*;
public   class   writelog   {
public   static   void   main(string[]   args)   {
    try{
      filewriter   fw=new   filewriter( "c:\\aa.txt ",true);
      bufferedwriter   rf1=new   bufferedwriter(fw);
        for   (int   i   =   0;   i   <   100;   i   ++   ){
            rf1.write( "this   is   line   "+i);
            rf1.newline();
            rf1.flush();
            thread.sleep(1000);
        }
      rf1.close();
}catch   (exception   e){
  system.out.println( "write     error! ");
}

import   java.io.bufferedreader;
import   java.io.filereader;
public   class   readlog   {
public   static   void   main(string[]   args)   {
    try{
        bufferedreader   rf1     =   new   bufferedreader(new   filereader( "c:\\aa.txt "));
        string   s1=null;
        while((s1=rf1.readline())!=null){
            system.out.println(s1);
            thread.sleep(1000);
          }
        rf1.close();
}catch   (exception   e){
  system.out.println( "read     error! ");
}
}
}

writelog是模拟连续写log内容部分,   readlog   是读取不断更新的log文件部分,   先执行writelog,再执行readlog   .
发表于:2007-03-05 14:38:214楼 得分:0
这会涉及到同步的问题吧?

比如说这个类在写入log,同时另外你又开了一个笔记本也在写,c的一个程序也在写……

那不就乱了?


快速检索

最新资讯
热门点击