我试图将文件从一个目录复制到另一个目录,但是我希望调用阻塞,以便程序只在整个文件传输后继续执行。
目前我正在使用Files.copy()
,它使用非阻塞IO并立即返回。还有哪些其他选项(最好是内置于java标准库中)才能解决这个问题?
非常感谢, 加雷
答案 0 :(得分:10)
Files.copy
不是异步的,在副本完成之前它不会返回。
通常,如果方法是异步的,JavaDoc将非常清楚,并且该方法将接受某种形式的回调(lambda,或实现具有它调用的方法的接口的对象等。 ),或返回可用于检查完成(或错误)的内容。 Files.copy
没有做到这一点,而且它的Javadoc并不是说它是异步的,所以没有理由怀疑它是异步的。 (我只是做了一个快速测试,确保它没有回复,直到副本完成。)
答案 1 :(得分:1)
对于同步复制,您可以使用流从一个文件描述符复制到另一个文件描述符。 有关更多信息,请查看以下链接: http://www.mkyong.com/java/how-to-copy-file-in-java/
答案 2 :(得分:0)
查看java.io
包裹以获得答案。据我所知,File类操作有阻塞。