在编程过程中可能遇到的情况:
多次从一个文件(配置文件等)中取数据,但是配置的文件都是以字符串的形式表示的,获取的值也是字符串类型,这就需要自己手动将其转化为需要的类型,如果取得次数少还不是什么大问题,如果读取次数频繁,想想相同的代码会用到多少次,造成代码量大而且重复累赘。
在这个时候我们通常需要自己写工具类,将经常用到的相似代码(方法等)封装起来。
这里以从properties文件取数据为例。
首先从文件中取出的数据可能是一个文件名,可能需要得到一个整数或者浮点数类型值,也可能得到一个日期数据,这就需要将取出的干瘪的字符串数据在取出之后再转换为需要的类型。所以在这个自定义工具类当中我继承了如下方法:
String getString(String key)//得到普通字符串或者文件
Date getDate(String key)//得到一个日期数据(默认格式)
Date getDate(String key,String format)//得到一个日期数据(自定义格式)
Double getDouble(String key)//得到一个浮点型数据
package cn.jamsbwo.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Properties; /** * 集成了读取properties文件内容的方法 * 读取普通字符串 * 读取文件名 * 读取整形、浮点型 * 读取日期类型 * 配置文件名必须是config.properties * @author Administrator * */ public class ConfigUtil { private static Properties config=new Properties(); private ConfigUtil(){} public static Properties getConfig(){ return config; } static{ try { config.load(new FileInputStream(new File("config.properties"))); } catch (IOException e) { e.printStackTrace(); } } /** 取字符串 */ public static String getString(String key){ return config.getProperty(key); } /**取整数*/ public static int getInt(String key){ return Integer.parseInt(config.getProperty(key)); } /**取浮点数double*/ public static double getDouble(String key){ return Double.parseDouble(config.getProperty(key)); } /** 取日期(自定义格式) */ public static Date getDate(String key,String format){ Date date=null; SimpleDateFormat sdf=new SimpleDateFormat(format); String dateStr=config.getProperty(key); try { date=sdf.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } return date; } /** 取日期(默认1994-02-28) */ public static Date getDate(String key){ return getDate(key, "yyyy-MM-dd"); } }