我计算机中有一个测量软件,测量数据会实时写入一个.Dat的文件中,我想编写一个数据上传的桌面应用程序,那边写入一条,我这边就读取一条然后上传到数据库,求大佬们指导,感激不尽

解决方案 »

  1.   

    这个要实时监控别的程序写入文件的状态,有点棘手,毕竟没发修改监测软件跟你的程序通信
    如果有系统工具,比如 tail -f 之类的,可以通过Runtime的exec来监视文件的内容变化,然后读取改process的outstream的内容
    如果没有系统工具,可以用nio的WatchService、WatchKey试试,注册一个文件修改的监听器,文件被修改时用RandomAccessFile读取最后的修改内容(上次最终读取字节偏移)
      

  2.   

    推荐一个监控文件变化的库 JNotify,另外.dat文件如果是纯文本的就简单了,如果是二进制的你就必须要知道它的数据结构才能正确解析出来并读取上传。
      

  3.   

    测量数据是以纯文本的形式写入dat文件,像excel表格一样,一行一行的
      

  4.   

    楼主可以试试,下面的思路:
    1、用Runtime.getRuntime().exec()来执行测量软件,得到一个Process实例process
    2、调用process.getOutputStream()得到测量软件的输出流out
    3、开一个线程读取out,看看是不是向文件里面写的内容,如果是就皆大欢喜了。