⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deletefilequeue.java

📁 解析特定16进制文件
💻 JAVA
字号:
package com.datangmobile.oss.omc.pc;

import java.io.File;
import java.util.Iterator;
import java.util.LinkedList;
import com.datangmobile.oss.platform.util.ILogger;
import com.datangmobile.oss.platform.util.ModuleLogger;

public class DeleteFileQueue {

	private static final ILogger log = ModuleLogger.getPmLogger()
			.getOperLogger();

	/**
	 * 在MDB中删除文件失败的文件队列(已经解析成功,需要删除的)
	 */
	private LinkedList<File> queue = new LinkedList<File>();

	private static DeleteFileQueue instance = new DeleteFileQueue();

	/**
	 * 单例类
	 * 
	 * @return
	 */
	public static DeleteFileQueue getInstance() {
		return instance;
	}

	/**
	 * 给队列增加在MDB中删除错误的文件(需要再次删除)
	 * 
	 * @param fileInfo
	 */
	public void putDeleteFile(File file) {
		synchronized (queue) {
			if (!queue.contains(file)) {
				queue.addLast(file);
			}
		}
	}

	/**
	 * 获取队列中所有的文件信息,并清空队列
	 * 
	 * @return LinkedList<FileInfo>
	 */
	private LinkedList<File> pollAllFile() {
		LinkedList<File> temp = new LinkedList<File>();
		synchronized (queue) {		
			temp.addAll(queue);
			queue.clear();		
		}
		return temp;
	}

	/**
	 * 对文件队列中的文件逐个删除
	 * 
	 */
	public void deleteFile() {
		if (queue.size() == 0) {
			return;
		}
		// 获取所有的FileInfo
		LinkedList<File> infoList = pollAllFile();
		Iterator<File> itr = infoList.iterator();
		while (itr.hasNext()) {
			File file = itr.next();
			if (file == null) {
				continue;
			}
			if (!file.exists()) {
				/* 文件已不存在 */
				log.info(DeleteFileQueue.class, new StringBuilder().append(
						"删除本地性能数据文件时,文件已经不存在! ").append(file.getAbsoluteFile())
						.toString());
				continue;
			}
			if (!file.delete()) {
				/* 如果删除失败,则加入到队列后,继续删除 */
				log.error(DeleteFileQueue.class, new StringBuilder().append(
						"删除本地性能数据文件失败,将发如删除队列中重新删除! ").append(
						file.getAbsoluteFile()).toString());
				// 重新加入队列的头部
				putDeleteFile(file);
			} else {
				/* 删除成功 */
				log.info(DeleteFileQueue.class, new StringBuilder().append(
						"删除本地性能数据文件成功! ").append(file.getAbsoluteFile())
						.toString());
			}
		}
		infoList.clear();
	}

	// public static void main(String[] args) {
	// for (int i = 0; i < 10; i++) {
	// File file = new File("" + i);
	// putDeleteFile(file);
	// }
	// LinkedList<File> tempList = pollAllFile();
	// Iterator<File> itr = tempList.iterator();
	// while (itr.hasNext()) {
	// File file = itr.next();
	// System.out.println(file.getPath());
	// }
	// }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -