Java判断文件是否写入完成
在实现文件监听时,当有文件上传时,会立即监听到,并且会进行操作。若文件传输未完成,此时取到的文件就是非完整文件,这时如果对文件进行操作,就可能出现一些未知的错误,如转Base64就会得到一个非完整的Base64。这里可以通过判断文件前后的长度是否一样,来检测文件是否上传完成。代码如下。
long oldLength;
long newLength;
//判断文件是否写入完成
do {
oldLength = new File(path).length();
log.info("File Uploading >>" + path + ": " + oldLength);
Thread.sleep(3000);
newLength = new File(oldPath).length();
log.info("File Uploading >>" + path + ": " + newLength);
} while (oldLength != newLength);
log.info("File Uploading Success >> " + path);