大家好,我想问一下,假设我从源路径拷贝文件到目标路径,而源路径的文件是不定时的放入,而我写的程序是用定时器,现在出现一个问题,当有一个文件正放入源路径,
 此时程序就要拷贝这个文件,这是就会报错,请问大家可有什么办法解决呢,谢谢

解决方案 »

  1.   

    楼主可以考虑,使用File.renameTo()方法。不去读取IO流,这样,应该不会出现上述问题。如果还有问题,可将抛出异常的语句(renameTo方法)进行try-catch,catch块里面,不做任何处理。
    这样,Timer下次触发时,会对抛出异常的文件,重新进行处理。
      

  2.   

    按规则命名,读文件的JAVA程序只扫描有相应命名的文件件。如abc.cpy
    其它文件往里放的时候没有cpy,等往源路径写入完成后再改名成后缀为cpy的文件。
      

  3.   

    是的,支持五楼的方法
    用File.renameTo(File  path);
      

  4.   

    用File.renameTo(File  path);   正解!
      

  5.   

    文件copy之前可以先判断一下文件是不是允许读取,如:if(file.canRead()){ copyFile(); }