我的一个程序要去读另外一个程序(这个程序是第三方写的)写的文件,如果我读的时候那个程序正在写文件,很容易出问题,请问我如何才能保证我的程序互斥的访问文件阿?有什么办法在那个程序写文件的时候,我的程序就不读。谢谢

解决方案 »

  1.   

    try好了,如果报错就说明有程序在写。
      

  2.   

    bluesmile979(笑着) ( )  好办法  学习!
      

  3.   

    用传说中的jndi试试..win32api好像可以设置一个文件正在使用时,能不能被其它程序调用。
      

  4.   

    用synchronized同步块就能搞定了啊
      

  5.   

    我的程序用synchronized同步块有什么用啊,另一个程序是已经写好了的。
      

  6.   

    我是这样想的
    你写一个方法 synchronized 访问()
    读文件或者写文件都要调用这个方法
    那么 这样就可以用同步的方法来访问文件了.
      

  7.   

    1 synchronized方法
    2 try
      

  8.   

    用synchronized有什么用啊!在读之前给文件做个副本,先去读该副本,读完之后判断一下副本与原文件是否有差别,如果有差别那只能重新读了.其实你的两个程序不是同一个人在维护的话,似乎没有办法保证你得到的是最新的数据哦,期待高手出现.
      

  9.   

    只要你那个第三方程序没有share read就行了,你试图读就会抛出异常。如果那个程序share read,在Java里面是不可能完成的。必须深入系统,获取文件是否打开句柄(win32)。