package com.connect;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class RWProperties {
private Properties properties;
/**
* 配置文件的完整路径
*/
private String filePath;
/**
* 初始化RWProperties
*
* @param propertyFilePath
* 属性配置文件的完整路径,如:"com/config/jdbc.properties"
*
* @return RWProperties的实例
*/
public RWProperties(String propertyFilePath){
filePath=propertyFilePath;
properties=getProperties(propertyFilePath);
}
/**
* 获得Key值所对应的Value值
*
* @param key 属性配置文件的Key值
* @return Key值所对应的Value值
*/
public String getValue(String key){
String value="";
if(properties.containsKey(key)){
value=properties.getProperty(key);
return value;
}else{
return value;
}
}
/**
* 修改属性配置文件
*
* @param key
* @param value
* @param filePath
* 属性配置文件的完整路径
* @return 修改成功返回true,失败则返回false
*/
public boolean setProperty(String key, String value){
FileOutputStream out=this.getFileOutputStream(filePath);
properties.setProperty(key, value);
boolean flag=false;
try{
properties.store(out, null);
flag=true;
}catch(IOException ex){
ex.printStackTrace();
}finally{
if(out!=null){
try{
out.flush();
out.close();
}catch(IOException ex){
ex.printStackTrace();
clear();
}finally{
out=null;
}
}
}
return flag;
}
/**
* 移除属性配置文件中的某个属性(key-value)
*
* @param key
* @return 成功返回true,失败返回false
*/
public boolean removeProperty(String key){
FileOutputStream out=this.getFileOutputStream(filePath);
properties.remove(key);
boolean flag=false;
try{
properties.store(out, null);
flag=true;
}catch(IOException ex){
ex.printStackTrace();
}finally{
if(out!=null){
try{
out.flush();
out.close();
}catch(IOException ex){
ex.printStackTrace();
clear();
}finally{
out=null;
}
}
}
return flag;
}
/**
* 释放资源
*/
public void clear(){
if(properties!=null){
properties.clear();
}
}
/**
* 返回加载了配置文件的Properties对象
*
* @param propertyFilePath
* 属性配置文件的完整路径,如:"com/config/jdbc.properties"
*
* @return java.util.Properties
*/
private Properties getProperties(String propertyFilePath){
Properties properties=new Properties();
InputStream in=null;
try{
in=RWProperties.class.getClassLoader().getResourceAsStream(propertyFilePath);
properties.load(in);
}catch(NullPointerException ex){
System.out.println("读取属性文件-->失败!- 原因:文件路径错误或文件不存在");
ex.printStackTrace();
clear();
}catch(IOException ex){
System.out.println("装载文件-->失败!");
ex.printStackTrace();
clear();
}finally{
if(in!=null){
try{
in.close();
}catch(IOException ex){
ex.printStackTrace();
}finally{
in=null;
}
}
}
return properties;
}
/**
* 返回已经加载了配置文件的文件输出流
*
* @param propertyFilePath
* 属性配置文件的完整路径
* @return java.io.FileOutputStream out
*/
private FileOutputStream getFileOutputStream(String propertyFilePath){
FileOutputStream out=null;
String filePath=null;
filePath=RWProperties.class.getClassLoader().getResource(propertyFilePath).getFile();
//如果URL中含有"/"字符,将会被去掉
filePath=filePath.replace("/", "");
//如果URL中含有空格,则会被"%20"替换,所以要将它替换回来
filePath=filePath.replace("%20", " ");
try{
out=new FileOutputStream(filePath);
}catch(FileNotFoundException ex){
System.out.println("获取文件输出流-->失败!");
ex.printStackTrace();
clear();
}
return out;
}
}
本文摘自:http://vipbooks.iteye.com/blog/607196
分享到:
相关推荐
在Java编程中,读写`.properties`文件是一个常见的任务,这些文件通常用于存储配置信息、设置或环境变量。本文将深入探讨如何在Java中高效地处理`.properties`文件,包括读取、写入以及更新其内容。我们将参考提供的...
另一方面,Properties文件是Java平台上的传统配置文件格式,主要用于存储键值对,简洁易读,适用于小型配置需求。 XML文件的解析通常涉及以下步骤: 1. **加载XML文档**:通过Java的`java.io`或`javax.xml....
这些给定的文件名表明它们是Java编程语言中的工具类,用于处理XML配置文件的读取和管理。以下是对这些类可能包含的功能的详细解释: 1. **PortalConfig.java**:这个类可能专门用于处理与门户应用相关的配置信息。...
本文将详细介绍如何在Java中使用Properties配置文件进行读写操作。 首先,Properties文件是一种键值对(key-value pairs)的存储方式,其中每行都包含一个键和一个值,两者之间用等号(=)分隔,注释则以#开头。...
txt文件则是一种通用文本文件,可以用于任意形式的数据存储,配置文件也不例外。开发者可以根据需要自定义其结构和解析规则。 properties文件是Java特有的配置文件格式,主要用于存储键值对,它以.properties为扩展...
项目中的`conf.properties`、`backupdb.properties`和`reg.properties`可能是配置文件,通常用于存储应用的配置信息,如数据库连接参数、系统设置等。`print.properties`可能包含了打印相关的配置。`org`和`META-INF...
本文将探讨一个基于Java的Excel导入通用类源码,它利用了反射技术、JXL库以及properties配置文件,旨在提供一种灵活且可扩展的数据导入导出解决方案。 首先,我们来看“反射应用”。在Java中,反射是一种强大的机制...
Properties类是Java标准库中的一个类,主要用于处理属性键值对,常用于配置文件的读写。在这个场景下,它被用来将日志信息以键值对的形式持久化到文件中,便于后续检索和分析。 以下是使用Properties存储日志的基本...
`FileInputStream`和`FileOutputStream`是用于文件读写的流类,它们分别用于读取和写入文件。而`InputStream`是一个通用的字节输入流的父接口。 文档还展示了如何使用`FileInputStream`和`FileOutputStream`来操作...
本文将深入探讨“写配置文件”的相关知识点,包括配置文件的常见类型、结构、语法以及如何进行读写操作。 1. **配置文件的常见类型** - **INI文件**:如File_ini_RW所示,INI文件是最传统的配置文件格式,由节...
这可以通过构造函数参数、静态方法参数或者配置文件来实现。 总的来说,从文件读取数据并解析成Bean实体类涉及多个层次的技术,包括基础的文件I/O、数据解析、对象映射以及高级的工具类设计。开发者需要熟悉这些...
1. `app.config`:这是.NET应用程序的配置文件,通常用于存储应用的设置和连接信息。 2. `DxfExportExample.cs`:这可能是一个示例代码文件,展示了如何使用CADlib进行DXF文件的导出操作。 3. `DxfExportExampleCS ...
- **.classpath**:Eclipse项目的类路径配置文件。 这些文件和目录表明,这是一个Android工程的源代码结构,其中可能包含了实现NFC读写功能的相关代码。开发者可能需要分析`src`目录下的Java类,查找与NFC相关的类...
在描述中提到的"ftpstatus.properties"文件,这是一个属性配置文件,通常用于存储程序运行时的状态或者配置信息。在Java FTP程序中,它可能包含关于FTP连接状态、错误代码或提示信息等的定义,方便程序在运行过程中...
首先,`App.config` 文件是 C# 应用程序的标准配置文件,其中包含了连接字符串和其他应用程序设置,如数据库路径、日志配置等。在 SQLite 的上下文中,它可能会包含指向 SQLite 数据库文件的路径,以及用于连接...
这个项目的文件名"demo-boot-multdata_new"可能包含了演示SpringBoot多数据源的示例代码,其中包括了配置文件、Mapper接口、实体类、Service层以及Controller层的相关实现。通过学习和理解这个项目,开发者可以掌握...
`App.config`文件通常用于存储应用程序的配置信息,如串口设置或MODBUS参数。你可以在这里定义默认的串口配置,例如: ```xml <!-- 其他设置 --> ``` 在`Program.cs`中,你可能会找到程序的入口点,...
14. **`java.util.Properties`**:用于读写配置文件,常用于存储应用程序的配置参数。 15. **`java.util.PriorityQueue`**:优先队列,内部实现为堆,可以自动维护元素的排序。 以上仅是部分可能包含的工具类,...
- `logging.properties`:这是Tomcat的日志配置文件,位于`$CATALINA_BASE/conf`目录下。你可以通过修改这个文件来定制日志输出的行为,例如设置日志级别(INFO, WARN, ERROR等),定义不同的日志处理器...
11. **`java.util.Properties`**:用于读写配置文件,通常用于存储应用程序的配置信息。 12. **`java.util.concurrent`** 包:提供了线程安全的数据结构和并发工具类,如`ConcurrentHashMap`, `ExecutorService`, `...