JAVA Properties工具类
来源:互联网 发布:郑州淘宝加盟诈骗罪 编辑:程序博客网 时间:2024/04/28 16:55
今天遇到一个问题就是new FileInputStream(“”)不能获取相对路径的输入流,只能写绝对路径才能访问。
本人通过参考一些文件现总结如下:
1、首先是加载property属性文件
private static Properties properties;
private static Logger log = Logger.getLogger(Configuration.class);
private final static String PropfilePath = "load/proptertyFIle/system.properties";
static{
InputStream in = null;
properties = new Properties();
try {
String path = Thread.currentThread().getContextClassLoader().getResource("").getPath();
//in = new BufferedInputStream (new FileInputStream(path + "/system.properties"));
in = Configuration.class.getClassLoader().getResourceAsStream(PropfilePath);
properties.load(in);
} catch (FileNotFoundException ex) {
log.error("Cannot find file [system.properties].");
ex.printStackTrace();
} catch (IOException ex) {
log.error("Read file[system.properties] Error.");
ex.printStackTrace();
} finally {
try {
if (in != null)
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
2、有key获取value
public static String getValue(String key) {
if (properties.containsKey(key)) {
// 得到某一属性的值
String value = properties.getProperty(key);
return value;
} else
return "";
}
3、读取properties
public static void readProperties(String filePath) {
Properties props = new Properties();
try {
InputStream in = new BufferedInputStream((new FileInputStream(filePath)));
props.load(in);
Enumeration en = props.propertyNames();
while (en.hasMoreElements()) {
String key = (String) en.nextElement();
String Property = props.getProperty (key);
System.out.println(key+Property);
}
} catch (Exception e) {
e.printStackTrace();
}
}
4、 //写入propertity信息
public static void writeProperties(String filePath,String parameterName,String parameterValue) {
Properties prop = new Properties();
try {
InputStream fis = new FileInputStream(filePath);
//从输入流中读取属性列表(键和元素对)
prop.load(fis);
//调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。
//强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
OutputStream fos = new FileOutputStream(filePath);
prop.setProperty(parameterName, parameterValue);
//以适合使用 load 方法加载到 Properties 表中的格式,
//将此 Properties 表中的属性列表(键和元素对)写入输出流
prop.store(fos, "Update '" + parameterName + "' value");
} catch (IOException e) {
System.err.println("Visit "+filePath+" for updating "+parameterName+" value error");
}
}
5、测试
public static void main(String[] args) throws IOException {
System.out.println(Configuration.getValue("saveDays"));
System.out.println(new File("system.properties").getPath());
//注意需要绝对路径 提供字符串做参数的话,new FileInputStream需要写绝对路径。
Configuration.readProperties("D:\\myeclipseWorkplace\\test\\src\\load\\proptertyFIle\\system.properties");
System.out.println(System.getProperty("user.dir"));
Configuration.writeProperties("D:\\myeclipseWorkplace\\test\\src\\load\\proptertyFIle\\system.properties", "insert", "this is a test data");
}
- JAVA Properties工具类
- JAVA Properties工具类
- java.util.Properties工具类
- Java Properties工具类详解
- java加载properties工具类
- java properties 的工具类
- java.util.properties工具类操作properties配置文件
- JAVA-Properties类和Collections工具类
- 【java工具类】properties文件操作
- java 解析properties文件 工具类 通用
- java读取Properties文件的工具类
- java【工具类】读取,修改Properties
- Java工具类--读取Properties文件
- 【java】获取properties配置文件信息工具类
- Java读取Properties文件工具类
- Java属性Properties文件读取工具类
- Java工具类--读取Properties文件
- Java读取Properties文件工具类
- [C#]增强响应性,用加载窗体(Splash)来载入主窗体
- 单例设计模式
- 模板方法
- Microsoft Accelerator for Windows Azure给我们的启示,由 TechStars 撰写
- 匿名内部类
- JAVA Properties工具类
- Servlet中怎么取得session和application
- orcale学习总结
- MFC中使用数据库注意事项
- flex图片剪切示例--预览、保存到本地、保存到服务器(附源码)
- BFS和DFS模板
- 并查集模板
- 2012年终总结
- 通过 ActiveSync 调试网络的问题