反射+工厂模型+Properties
2015-08-12 16:16
405 查看
通过Properties类从文件中读取配置信息,从而可以避免大量的代码修改。
1、新建fruit.properties(文件名任意,路径在项目默认目录下),并写入内容:
2、编写Fruit接口:
3、Fruit接口的实现类:
4、FruitFactory工厂:
5、主类:
运行结果:
Banana!
properties.iApple
可以用Properties#store(InputStream in,String key)将数据写入指定文件中。用Properties#clear()清除文件中所有数据。
通过Properties获取JVM配置信息:
以键值对形式显示Properties文件中所有配置信息:
java中Properties类的操作:/article/5171942.html
java读取Properties文件的六种方法:http://blog.csdn.net/Senton/article/details/4083127
1、新建fruit.properties(文件名任意,路径在项目默认目录下),并写入内容:
apple=properties.Apple banana=properties.Banana
2、编写Fruit接口:
public interface Fruit { void eat(); }
3、Fruit接口的实现类:
public class Banana implements Fruit{ @Override public void eat() { // TODO Auto-generated method stub System.out.println("Banana!"); } }
public class Apple implements Fruit{ @Override public void eat() { // TODO Auto-generated method stub System.out.println("Apple!"); } }
4、FruitFactory工厂:
public class FruitFactory { public static Fruit getFruitInstance(String className) { Fruit fruit = null; try { fruit = (Fruit) Class.forName(className).newInstance(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return fruit; } }
5、主类:
public static void main(String[] args) { FruitFactory.getFruitInstance(Apple.class.getName()).eat(); Properties pro = init(); // Properties根据键值对获取信息 Fruit f = FruitFactory.getFruitInstance(pro.getProperty("banana")); f.eat(); System.out.println(pro.getProperty("iapple")); } static Properties init() { // 新建Properties对象 Properties pro = new Properties(); File file = new File("fruit.properties"); if (file.exists()) { try { pro.load(new FileInputStream(file)); pro.setProperty("iapple", "properties.iApple"); // 根据键值对将数据写入文件中 pro.store(new FileOutputStream(file), "iapple"); // pro.clear(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } else { pro.setProperty("apple", "properties.Apple"); // pro.loadFromXML(new FileInputStream("")); } return pro; }
运行结果:
Banana!
properties.iApple
可以用Properties#store(InputStream in,String key)将数据写入指定文件中。用Properties#clear()清除文件中所有数据。
通过Properties获取JVM配置信息:
1 Properties pro= System.getProperties(); 2 pro.list(System.out);
以键值对形式显示Properties文件中所有配置信息:
void showDetail() { Properties pro = System.getProperties(); pro.list(System.out); Enumeration<?> enu = pro.propertyNames(); while (enu.hasMoreElements()) { String key = (String) enu.nextElement(); String value = pro.getProperty(key); System.out.println("key:" + key + " value:" + value); } }
java中Properties类的操作:/article/5171942.html
java读取Properties文件的六种方法:http://blog.csdn.net/Senton/article/details/4083127
相关文章推荐
- linux系统下刻录u盘制作启动盘
- Linux学习笔记--目录处理命令----pwd ---打印当前目录
- java web-上传文件到tomcat服务器上路径问题
- CSUOJ:K swap operation
- Linux下usb转串口工具minicom安装
- 打造ArchLinux下的类apt-get source工具
- shell命令
- apache的扩展模块安装
- Linux 增加swap空间
- Linux的启动流程
- Linux学习笔记--目录处理命令----cd----切换目录
- linux常用查看硬件设备信息命令
- shell相关
- Linux svn: Can't convert string from 'UTF-8' to native encoding 解决
- ubuntu中 opencv版本查看
- csu oj K swap operation 模拟
- Linux系统信息查看命令
- linux 内核移植和根文件系统的制作
- centos端口转发神器:socat安装及使用
- 迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解