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

问题描述 投票:0回答:1

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

java ftp apache-commons-net
1个回答
0
投票

通常,只要您创建文件,文件就会对其他进程或线程可见。所以你的第二个线程可以在你完成写入之前查看和处理文件。正确的做法是使用临时扩展(如您提到的.temp)或临时目录。

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

© www.soinside.com 2019 - 2024. All rights reserved.