这个类,不能写成多线程的。现在的环境是这样的,多个用户同时登陆到一个Web系统中,他们都会随时访问web服务器的一个文件,对他进行写操作,所以这时候就发生了资源访问并发的问题。
如何让这些用户各自的请求能够顺利完成,成功地对文件进行写操作呢?

解决方案 »

  1.   

    而且我不想把对文件进行写入操作的那个方法写成 static synchronized .的.
      

  2.   

    synchronized(this) {
    File accessLog=new File("C:\\accessLog.log");

    //if (!accessLog.exists()){
    // throw new IOException();
    //} BufferedWriter bw = null;
    try{

     String input="newLine";  StringBuffer sb=new StringBuffer(input);  bw = new BufferedWriter(new FileWriter(accessLog,true));
     bw.write(sb.toString());
     bw.newLine();

    }catch(IOException ex){

    }finally{
      if(bw!=null){
      
       bw.flush();
       bw.close();
      
      }
    }
    }
    把同步的语句放在synchronized语句块里面
      

  3.   

    jFresH_MaN(我本将心照明月,奈何明月照沟渠!) 你好,这样可以吗?多用户访问的话与多线程访问一样吗?
      

  4.   

    这个问题,我也正在犯愁呢。
    我的是从数据库里生成xml文件,
    前台只访问xml文件,修改xml文件后还要刷新回数据库,
    多个用户又必须都能同时修改