Properties操作例子类

本文介绍了多种在Java中加载和更新配置文件的方法,包括使用Properties类的不同方式,如通过getResourceAsStream从类路径加载文件,以及使用ResourceBundle进行国际化资源管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Properties; import org.apache.log4j.Logger; public class SystemParameter { private static Logger logger = Logger.getLogger(SystemParameter.class); private static String msgTemplate1; private static String msgTemplate2; private static String msgTemplate3; private static final Properties properties; public static Map<String, String> proMap=new HashMap<String, String>(); private SystemParameter() { } static { properties = new Properties(); FileInputStream fis = null; try { fis = new FileInputStream(Thread.currentThread() .getContextClassLoader().getResource( "systemParamter.properties").toString() .substring(6)); properties.load(fis); msgTemplate1 = properties.getProperty("msgTemplate1"); proMap.put("msgTemplate1", msgTemplate1); msgTemplate2 = properties.getProperty("msgTemplate2"); proMap.put("msgTemplate2", msgTemplate2); msgTemplate3 = properties.getProperty("msgTemplate3"); proMap.put("msgTemplate3", msgTemplate3); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } public static String getMsgTemplate1() { return proMap.get("msgTemplate1"); } public static String getMsgTemplate2() { return proMap.get("msgTemplate2"); } public static String getMsgTemplate3() { return proMap.get("msgTemplate3"); } // 修改通知模板 public static void modifyMsgTemplate(String key,String template) { logger.debug("################" + template); properties.setProperty(key, template); FileOutputStream fos = null; try { fos = new FileOutputStream(Thread.currentThread() .getContextClassLoader().getResource( "systemParamter.properties").toString() .substring(6)); properties.store(fos, ""); proMap.put(key, template); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

另一个例子

public class Test { private static Properties properties = new Properties(); public static void main(String[] args) { try { InputStream is = Test. class .getClassLoader().getResourceAsStream( "cache.properties" ); properties.load(is); String size = properties.getProperty( "cache.size" ); writeLog( "配置成功!" + size); } catch (FileNotFoundException e) { writeLog( "配置文件不存在!" + e.getMessage()); } catch (IOException e) { writeLog( "读取配置文件IO错误!" + e.getMessage()); } } public static void writeLog(String strLog) { System.out.println(strLog); } } 1.使用java.util.ResourceBundle类的getBundle()方法 示例: ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault()); return rb.getString("key"); 注:该方法可以读jar包里的文件 2.使用java.util.PropertyResourceBundle类的构造函数 示例: InputStream in = new BufferedInputStream(new FileInputStream(name)); ResourceBundle rb = new PropertyResourceBundle(in); return rb.getString("key"); 3.使用java.util.Properties类的load()方法 示例: InputStream in = new BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in); return p.getProperties("key"); or return p.getProperties("key", "defaultValue"); 4.使用class变量的getResourceAsStream()方法 示例: InputStream in = ClassName.class.getResourceAsStream(name); Properties p = new Properties(); p.load(in); return p.getProperties("key"); or return p.getProperties("key", "defaultValue"); 5.使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法 示例: InputStream in = ClassName.class.getClassLoader().getResourceAsStream(name); Properties p = new Properties(); p.load(in); return p.getProperties("key"); or return p.getProperties("key", "defaultValue"); 6.使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法 示例: InputStream in = ClassLoader.getSystemResourceAsStream(name); Properties p = new Properties(); p.load(in); return p.getProperties("key"); or return p.getProperties("key", "defaultValue"); 补充 Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法 示例:InputStream in = context.getResourceAsStream(path); Properties p = new Properties(); p.load(in); return p.getProperties("key"); or return p.getProperties("key", "defaultValue"); 7.读jar外面的文件 FileInputStream fis; Properties p = new Properties(); fis = new FileInputStream(initfileName); prop.load(fis); 注:jar文件执行时,注意cmd路径必须与jar路径相同

资源下载链接为: https://pan.quark.cn/s/9648a1f24758 这个HTML文件是一个专门设计的网页,适合在告白或纪念日这样的特殊时刻送给女朋友,给她带来惊喜。它通过HTML技术,将普通文字转化为富有情感和创意的表达方式,让数字媒体也能传递深情。HTML(HyperText Markup Language)是构建网页的基础语言,通过标签描述网页结构和内容,让浏览器正确展示页面。在这个特效网页中,开发者可能使用了HTML5的新特性,比如音频、视频、Canvas画布或WebGL图形,来提升视觉效果和交互体验。 原本这个文件可能是基于ASP.NET技术构建的,其扩展名是“.aspx”。ASP.NET是微软开发的一个服务器端Web应用程序框架,支持多种编程语言(如C#或VB.NET)来编写动态网页。但为了在本地直接运行,不依赖服务器,开发者将其转换为纯静态的HTML格式,只需浏览器即可打开查看。 在使用这个HTML特效页时,建议使用Internet Explorer(IE)浏览器,因为一些老的或特定的网页特效可能只在IE上表现正常,尤其是那些依赖ActiveX控件或IE特有功能的页面。不过,由于IE逐渐被淘汰,现代网页可能不再对其进行优化,因此在其他现代浏览器上运行可能会出现问题。 压缩包内的文件“yangyisen0713-7561403-biaobai(html版本)_1598430618”是经过压缩的HTML文件,可能包含图片、CSS样式表和JavaScript脚本等资源。用户需要先解压,然后在浏览器中打开HTML文件,就能看到预设的告白或纪念日特效。 这个项目展示了HTML作为动态和互动内容载体的强大能力,也提醒我们,尽管技术在进步,但有时复古的方式(如使用IE浏览器)仍能唤起怀旧之情。在准备似的个性化礼物时,掌握基本的HTML和网页制作技巧非常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值