通过ftp检索文件时是否需要临时文件?

时间:2019-04-05 08:25:19

标签: java ftp apache-commons-net

我正在使用ftpClient.retrieveFile()从FTP服务器下载文件,而另一个线程正在不断扫描目录以处理文件。我想知道这是否危险?可能是文件未完成下载并由其他线程处理吗?我应该使用.temp后缀来保存临时文件,并在交易完成后重命名吗?

1 个答案:

答案 0 :(得分:0)

通常,文件在创建后立即对其他进程或线程可见。因此,第二个线程可以在完成写入文件之前查看并处理文件。正确的做法是使用临时扩展名(如您提到的.temp)或临时目录。

在您的情况下,最合适的方法是使用某种同步机制,以便第二个线程在没有文件可处理时阻塞,而第一个线程在文件下载完成时通知第二个线程。 Java通过wait()类的notify()Object方法支持这些操作。