欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java读写Properties 文件 博客分类: JavaIO Java读写Properties文件 

程序员文章站 2024-03-24 22:05:34
...

private final static String SYS_TEMP_FILE = System
			.getProperty("java.io.tmpdir") + "\\9884698793643198z.properties";
	private static Map<String, String> fileNames = null;

	/**
	 * get a file path from a system temp file.
	 * 
	 * @param keyOfFileName
	 * @return
	 */
	public static final String getAFilePathFromSysTempFile(String keyOfFileName) {
		if (null == fileNames) {
			fileNames = new HashMap<String, String>();
			loadFilePathsFromSysTempFile();
		}
		String path = fileNames.get(keyOfFileName);
		return null == path ? "" : path;
	}

	private static final boolean loadFilePathsFromSysTempFile() {
		try {
			if (!new File(SYS_TEMP_FILE).exists()) {
				new File(SYS_TEMP_FILE).createNewFile();
				return true;
			}
			Properties props = new Properties();
			InputStream in = new BufferedInputStream(new FileInputStream(
					SYS_TEMP_FILE));
			props.load(in);
			Enumeration<?> en = props.propertyNames();
			while (en.hasMoreElements()) {
				String key = (String) en.nextElement();
				String prop = props.getProperty(key);
				fileNames.put(key, prop);

			}
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}

	/**
	 * save a file path to a system temp file.
	 * 
	 * @param parameterName
	 * @param parameterValue
	 * @return
	 */
	public static final int saveAFilePathToSysTempFile(String parameterName,
			String parameterValue) {
		Properties prop = new Properties();
		try {
			InputStream fis = new FileInputStream(SYS_TEMP_FILE);
			prop.load(fis);

			OutputStream fos = new FileOutputStream(SYS_TEMP_FILE);
			prop.setProperty(parameterName, parameterValue);
			prop.store(fos, "Update '" + parameterName + "' value");

			fileNames.put(parameterName, parameterValue);
			return fileNames.size();
		} catch (IOException e) {
			e.printStackTrace();
			return -1;
		}
	}