File file = new File("a.txt");
我怎样保证对a.txt同步读写?最好给出代码!

解决方案 »

  1.   

       给写操作上synchronized,读就不需要了(一般情况)
      

  2.   

    File file = new File("a.txt"); 
    synchronized(file){
    //对file的写操作
    }
    这样做吗?
      

  3.   

    光这样不行,因为你的File file = new File("a.txt");还是会被其它线程调用,这样当文件存在排他打开方式时会出错
    如果你是要写一次文件马上就关闭文件的话,synchronized加载方法声明处或加在File file = new File("a.txt");之前
    如果是程序最终结束才关闭文件的话,应该把File file做成成员变量,在程序开始时打开文件,以后写文件时synchronized(file)这样是可以的
      

  4.   

    1、操作的时候将操作对象放入队列中。
    2、File file写成全局变量(3楼的方法)。
    3、为了避免服务器的长时间等待,应该通过JMS机制来处理