ps:我在原文的基础上进行了修改
背景
项目中需要通过java api调用linux命令,但是三个命令都是下一条命令需要用到上一个命令生成的文件,所以这里需要判断文件是否还在继续写入~
代码
/*
*
* @description: 判断文件是否还在写入
* @author: Leesin.Dong
* @date: 2019-12-09 18:55
* @param fileName
* @return: boolean
*/
public static boolean checkFileWritingOn(String fileName) throws Exception{
long oldLen = 0;
long newLen = 0;
long time = 0;
File file = new File(fileName);
if (!file.exists()) {
log.debug("file do not exits!!!");
return false;
}
while(true){
newLen = file.length();
if ((newLen - oldLen) > 0) {
oldLen = newLen;
System.out.println(file.length());
Thread.sleep(2000);
time += 2000;
//设置超时时间,不要让它无限期的等下去,避免影响总的线程执行
if (time > 60000) {
return false;
}
} else {
log.debug("No longer write !!!");
return true;
}
}
}
https://blog.csdn.net/qq_21682469/article/details/78808719
链接:
有一篇博文虽然不能满足我的需求,但是真的是一篇不错的文章:
Java可以如何实现文件变动的监听的示例
这是动态的监听文件变化,就像他是如果文件变化了怎么怎么样,可是我需要的是如果文件不变化了怎么怎么样~
但是这是确实是一个值得收藏的知识。