Java判断文件是否已经写入成功,是否已经长时间未修改。


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可以如何实现文件变动的监听的示例
这是动态的监听文件变化,就像他是如果文件变化了怎么怎么样,可是我需要的是如果文件不变化了怎么怎么样~
但是这是确实是一个值得收藏的知识。

发布了508 篇原创文章 · 获赞 2204 · 访问量 187万+

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览