我需要找到一种在不锁定文件的情况下获取文件大小的方法。
在我的系统中,我有两个线程,第一个使用Jsch将文件下载到linux文件系统,而第二个线程获取文件大小。这两个线程之间存在交互,并且Jsch在java.io.FileOutputStream.open0(本机方法)上引发异常。
因为Jsch不是我的代码,所以我无法同步两个线程。我的解决方案是即使值不是原子的也不要锁定文件。
fileAttributes = Files.readAttributes(tmpFile.toPath(), BasicFileAttributes.class);
return fileAttributes.size();