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

📄 configmanager.java

📁 java编写的监控一个文件夹里面有没有新的excel文件放入
💻 JAVA
字号:
/**
 * 
 */
package com.justin.config;

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;
import java.io.*;
import com.justin.log.*;

/**
 * @author Justin
 *
 * 单例模式实现,此类用来读取并存放程序的配置信息
 */
public class ConfigManager {

	//用户配置文件名
	public static String USER_CONFIG_FILE = "config.properties";

	//应用程序根目录
	public static String APP_ROOT = System.getProperty("user.dir");

	//存放接收数据的目录
	public static String RECIEVED_DATA_DIR = "Recieved_Data_Dir";

	//监测接收数据间隔
	public static String DETECT_INTERVAL_RECEIVED = "Detect_Interval_Received";

	//监测接收数据文件类型
	public static String RECEIVED_FILE_TYPE = "Received_File_Type";

	//发现后进行标记的文件类型
	public static String MARKED_FILE_TYPE = "Found_File_Type";

	//处理完成后的文件类型
	public static String PROCESSED_FILE_TYPE = "Processed_File_Type";

	//存放处理完后文件的目录
	public static String PROCESSED_DATA_DIR = "Processed_Data_Dir";

	//监测处理完文件的间隔
	public static String DETECT_INTERVAL_PROCESSED = "Detect_Interval_Processed";

	//接收到的文件的备份目录
	public static String DATA_BACKUP_DIR = "Data_Backup_Dir";

	//调试状态
	public static String DEGUB_STATE = "Debug_State";

	//存放默认配置
	public static Properties defaultProp;

	//存放用户配置
	private static Properties userProp;

	private static ConfigManager config = null;

	public synchronized static ConfigManager getInstance() {
		if (config == null) {
			config = new ConfigManager();
		}
		return config;
	}

	private ConfigManager() {
		try {
			//设置默认属性			
			defaultProp = new Properties();
			defaultProp.setProperty(RECIEVED_DATA_DIR, "C:\\RecievedData");
			defaultProp.setProperty(DETECT_INTERVAL_RECEIVED, "5000");
			defaultProp.setProperty(RECEIVED_FILE_TYPE, "xls");
			defaultProp.setProperty(MARKED_FILE_TYPE, "found");
			defaultProp.setProperty(PROCESSED_FILE_TYPE, "");
			defaultProp.setProperty(PROCESSED_DATA_DIR, "C:\\ProcessedData");
			defaultProp.setProperty(DETECT_INTERVAL_PROCESSED, "5000");
			defaultProp.setProperty(DATA_BACKUP_DIR, "C:\\BackupData");
			defaultProp.setProperty(DEGUB_STATE, "false");

			//加载用户定制的配制文件
			userProp = new Properties();
			userProp.load(new FileInputStream(APP_ROOT + File.separator
					+ USER_CONFIG_FILE));
			//输出默认属性及配置文件的内容
			userProp.list(System.out);
		} catch (IOException ex) {
			System.out.println("No Configuration File");
		}
	}

	//获取默认Long型属性
	public synchronized long getDefaultLongProp(String key) {
		long value = 0;
		if (defaultProp.containsKey(key)) {
			value = Long.parseLong(defaultProp.getProperty(key));
		}
		return value;
	}

	//获取默认String型属性
	public synchronized String getDefaultStringProp(String key) {
		String value = "";
		if (defaultProp.containsKey(key)) {
			value = defaultProp.getProperty(key);
		}
		return value;
	}

	//获取默认boolean型属性
	public synchronized boolean getDefaultBooleanProp(String key) {
		boolean value = false;
		if (defaultProp.containsKey(key)) {
			value = Boolean.getBoolean(defaultProp.getProperty(key));
		}
		return value;
	}

	//获取String型属性
	public synchronized String getStringProperty(String key) {
		String value = "";
		if (userProp.containsKey(key)) {
			value = userProp.getProperty(key);
		} else {
			value = getDefaultStringProp(key);
		}

		return value;
	}

	//获取Long型属性
	public synchronized long getLongProperty(String key) {
		long value = 0;
		if (userProp.containsKey(key)) {
			try {
				value = Long.parseLong(userProp.getProperty(key));
			} catch (NumberFormatException e) {
				value = getDefaultLongProp(key);
			}
		} else {
			value = getDefaultLongProp(key);
		}

		return value;
	}

	//获取boolean型属性
	public synchronized boolean getBooleanProperty(String key) {
		boolean value = false;
		if (userProp.containsKey(key)) {
			try {
				value = Boolean.getBoolean((userProp.getProperty(key)));
			} catch (NumberFormatException e) {
				value = getDefaultBooleanProp(key);
			}
		} else {
			value = getDefaultBooleanProp(key);
		}

		return value;
	}

	//在用户界面显示所有的属性及值
	public synchronized void list(LogServer log) {
		log.showMessage("-- listing properties --");
		Hashtable h = new Hashtable();
		for (Enumeration e = userProp.keys(); e.hasMoreElements();) {
			String key = (String) e.nextElement();
			h.put(key, (String) userProp.get(key));
		}
		for (Enumeration e = h.keys(); e.hasMoreElements();) {
			String key = (String) e.nextElement();
			String val = (String) h.get(key);
			if (val.length() > 40) {
				val = val.substring(0, 37) + "...";
			}
			log.showMessage(key + "=" + val);
		}
	}

	//在输出流中显示所有属性及值
	public synchronized void list(PrintStream out) {
		userProp.list(out);
	}
}

⌨️ 快捷键说明

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