`

java缓存代码实现,以及properties文件读取

阅读更多
用map进行缓存

package edu.bupt626.asc.ui.cache;

import java.util.Collection;
import java.util.Date;
import java.util.concurrent.ConcurrentHashMap;
//单例模式

public class CacheManager {
	private static CacheManager cacheManager;
	// key: code
	private ConcurrentHashMap<String, CodeInfo> codeMap;
		
	public static CacheManager getInstance(){
		if(cacheManager == null){
			init();
		}
		return cacheManager;
	}
	
	private static synchronized void init(){
		if(cacheManager == null)
			cacheManager = new CacheManager();
	}
	
	private CacheManager(){
		codeMap = new ConcurrentHashMap<String, CodeInfo>();
	}
	
	public boolean addCode(String code, int state){
		CodeInfo info = codeMap.get(code);
		if(info == null){
			codeMap.put(code, new CodeInfo(code, state, new Date()));
			return true;
		}
		else if(info.getState() != state){
			info.setState(state);
			info.setTimestamp(new Date());
		}
		
		return false;
	}
	
	public CodeInfo getCode(String code){
		return codeMap.get(code);
	}
	
	public Collection<CodeInfo> getCodeInfos(){
		return codeMap.values();
	}
	
	public Collection<String> getCodes(){
		return codeMap.keySet();
	}
	
	public void removeCode(String code){
		codeMap.remove(code);
	}
}


被缓存实体类CodeInfo
package edu.bupt626.asc.ui.cache;

import java.util.Date;

public class CodeInfo {
	private String code;
	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	private int state;
	private Date timestamp;
	
	CodeInfo(String code, int state, Date timestamp){
		this.code = code;
		this.state = state;
		this.timestamp = timestamp;
	}

	public int getState() {
		return state;
	}

	public void setState(int state) {
		this.state = state;
	}

	public Date getTimestamp() {
		return timestamp;
	}

	public void setTimestamp(Date timestamp) {
		this.timestamp = timestamp;
	}
}



java读配置文件.properties的类
.properties文件:
key = value1
key2 = value2


package edu.bupt626.acs.ui.util;

import java.io.IOException;
import java.util.Properties;
//单例模式
public class AppContext {
	private static AppContext instance;
	private Properties properties;
	// the name of the configuration file
	public static final String CONFIG_FILE = "/server.properties";

	private static synchronized void init() {
		if (instance == null)
			instance = new AppContext();
	}

	public static AppContext getInstance() {
		if (instance == null)
			init();

		return instance;
	}

	private AppContext() {
		// Load the property file
		properties = new Properties();
		try {
			properties.load(AppContext.class.getResourceAsStream(CONFIG_FILE));

		} catch (IOException e) {
						e.printStackTrace();
		}
	}

	public Properties getProperties() {
		return properties;
	}
}


当需要读取配置文件中信息时,调用即可
	Properties props = AppContext.getInstance().getProperties();
		String obj = props.getProperty(配置文件中的key值);
分享到:
评论

相关推荐

    android中读取properties文件

    博文链接中提到的可能涉及对`Properties`类的源码分析,可以深入了解其实现原理,例如如何解析文件,如何处理转义字符,以及如何缓存加载的属性等。 7. 工具应用 开发过程中,可以使用IDE的内置功能或第三方插件...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    总结一下,处理Java中的Properties文件读写时,需要注意文件路径的准确性、文件的读写权限以及缓存问题。通过以上方法,应该能够有效解决描述中提到的问题。对于提供的"新建文本文档.txt",虽然不是Properties文件,...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    总结一下,处理Java中的Properties文件时,关键是正确指定文件路径,以及在写入和读取时妥善管理文件流。确保关闭流并根据需要刷新,以避免数据丢失或未更新的问题。通过学习和实践这些解决方案,你将在Java应用开发...

    Java实现的properties文件动态修改并自动保存工具类

    本站还提供了其他相关内容,如《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》等,感兴趣的读者可以查看相关专题。 六、结论 Java实现的...

    java读取properties文件

    在Java编程中,读取`properties`文件是常见的任务,这些文件通常用于存储配置信息,如数据库连接字符串、系统设置等。本篇文章将详细介绍如何在Java中不依赖第三方库来读取`.properties`文件。 首先,`properties`...

    java读取properties文件的方法实例分析

    本篇文章将深入探讨如何在Java中读取`.properties`文件,无论它们位于项目内部还是外部。 1. **不在项目中读取.properties文件** 当`.properties`文件位于项目的外部时,我们需要使用文件系统路径来访问它。下面...

    在javascript文件中读取properties文件需要的插件jquery.i18n.properties-min-1.0.9.js

    在JavaScript环境中,与Java或服务器端语言不同,我们通常无法直接读取.properties文件,因为浏览器安全限制禁止了这种跨域请求。然而,为了在前端实现国际化(i18n)功能,有时候我们需要在JavaScript文件中读取...

    Java读取.properties文件 的四种方法

    在Java编程中,读取`.properties`文件是常见的任务,这些文件通常用于存储配置信息,如数据库连接字符串、系统设置等。以下将详细介绍四种方法来读取`.properties`文件。 ### 方法一:使用`java.util.Properties` ...

    读取properties配置文件

    综上所述,`PropertiesUtil`类是Java应用程序中读取和管理配置文件的关键工具,它提供了便捷的方法来获取配置信息,同时通过`BaseProperties`可能实现了环境和多语言的适配。理解并熟练使用这类工具对于提升Java应用...

    java读取ini文件

    通过以上介绍,我们可以看到使用Java的`Properties`类来读取和解析INI文件是非常简单且高效的。这为开发人员提供了一种灵活的方式来管理应用程序的配置信息。掌握这种方法不仅能够帮助我们更好地组织代码结构,还能...

    java 动态修改配置文件

    本文将深入探讨如何在Java中实现动态修改配置文件,同时解决中文字符编码问题,使得配置文件的读写更加高效和便捷。 首先,我们需要理解Java中的Properties类,它是处理配置文件的标准工具。`java.util.Properties`...

    JAVA读取环境变量

    本文将详细介绍如何在Java程序中实现跨平台地读取环境变量,并给出一个具体的示例代码进行解析。 #### 获取环境变量的重要性 在开发过程中,我们经常会遇到需要根据当前系统的不同环境变量来调整程序行为的情况。...

    java读取properties配置文件的方法

    Java读取Properties配置文件是Java开发中常见的任务,主要用于存储应用程序的配置参数,如数据库连接字符串、系统设置等。在Java中,我们可以使用`java.util.Properties`类来处理.properties文件。下面详细介绍两种...

    Java中的几种读取properties配置文件的方式

    Java中的几种读取properties配置文件的方式 Java是一个功能强大且灵活的编程语言,在开发过程中,properties配置文件扮演着非常重要的角色。Properties文件主要用于存储应用程序的配置信息,例如系统常量、版本号、...

    springboot整合Redis缓存源代码

    SpringBoot整合Redis缓存是Java开发中常见的技术实践,它能极大地提高应用程序的性能和响应速度,通过将频繁访问的数据存储在内存中,避免了反复从数据库读取数据的开销。以下是对这一主题的详细解释: 首先,...

    封装读取配置文件

    3. **提升性能**:通过缓存配置文件的读取结果,减少文件系统访问,提高程序响应速度。 ### 实现细节解析 #### 1. 配置文件路径定义 在`MainLocation`类中,首先定义了一个默认的配置文件路径`DEFAULT_PROPERTIES...

    Android高级应用源码-android java 通用代码,关于用properties存储打印的Log.rar

    这个压缩包"Android高级应用源码-android java 通用代码,关于用properties存储打印的Log"提供了一种使用.properties文件来存储和打印Log的方法,这可以使得日志管理更加灵活和可配置。下面将详细解释这种技术的核心...

    Java进程配置文件Reload

    通过`java.io.File`或`java.net.URL`读取配置文件,然后使用`Properties`类解析键值对。当文件发生变化时,再次调用加载方法,更新程序中的配置对象。 6. **线程安全**:在多线程环境中,配置文件的重新加载需要...

    java资源文件的处理

    在Java编程中,资源文件的处理是一个至关重要的环节,它涉及到程序运行时的数据读取、配置信息管理以及国际化(i18n)支持等多方面。资源文件通常包含非代码数据,如配置信息、文本字符串、图片、音频或视频等,它们...

    实现FreeMark读取模板生成HTML

    在实际项目中,你可能还需要处理异常、优化性能,以及考虑模板的复用和缓存等问题。 FreeMarker提供的功能远不止这些,它支持条件判断、循环、宏等高级特性,可以根据具体需求灵活运用。在进行FreeMarker编程时,...

Global site tag (gtag.js) - Google Analytics