package jt.web.utils;
import java.io.InputStreamReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ConfigUtil {
private static final Log log = LogFactory.getLog(ConfigUtil.class);
private ConfigUtil() {
}
/***
* 读取配置文件,指定配置文件的字符集。为支持中文自负串的属性值,配置文件使用UTF-8编码保存,读取的时候指定charsetName为UTF-8。
* @param configFile 文件名称
* @param charsetName 字符集,默认为UTF-8。
* @return
*/
public static Properties getProperties(String configFile, String charsetName) {
Properties prop = new Properties();
String cfg = configFile.trim();
InputStream is = ConfigUtil.class.getClassLoader().getResourceAsStream(
cfg);
if (is == null) {
is = ConfigUtil.class.getResourceAsStream(cfg);
if (is == null)
try {
is = new FileInputStream(cfg);
} catch (FileNotFoundException e) {
log.fatal("Config File not found: " + cfg);
log.error(e);
log.error(MiscUtil.traceInfo(e));
}
}
if (is != null)
try {
prop.load(new InputStreamReader(is,
charsetName == null ? "UTF-8" : charsetName));
} catch (IOException e) {
log.fatal("Config File read error: " + cfg);
log.error(e);
log.error(MiscUtil.traceInfo(e));
} finally {
try {
is.close();
} catch (IOException e) {
log.error(e);
log.error(MiscUtil.traceInfo(e));
}
}
return prop;
}
public static Properties getProperties(String configFile) {
Properties prop = new Properties();
String cfg = configFile.trim();
InputStream is = ConfigUtil.class.getClassLoader().getResourceAsStream(
cfg);
if (is == null) {
is = ConfigUtil.class.getResourceAsStream(cfg);
if (is == null)
try {
is = new FileInputStream(cfg);
} catch (FileNotFoundException e) {
log.fatal("Config File not found: " + cfg);
log.error(e);
log.error(MiscUtil.traceInfo(e));
}
}
if (is != null)
try {
prop.load(is);
} catch (IOException e) {
log.fatal("Config File read error: " + cfg);
log.error(e);
log.error(MiscUtil.traceInfo(e));
} finally {
try {
is.close();
} catch (IOException e) {
log.error(e);
log.error(MiscUtil.traceInfo(e));
}
}
return prop;
}
}
分享到:
相关推荐
在读写属性文件时,可能会遇到文件找不到、权限不足等问题。为了确保程序的健壮性,应使用`try-catch`块处理异常,如`FileNotFoundException`和`IOException`。 6. **在项目中的应用** 从提供的文件列表看,`User...
`PropertiesUtil`类是一个实用工具类,设计用于简化读取、写入和操作这些属性文件的过程。在本文中,我们将深入探讨`PropertiesUtil`类的功能和实现细节。 首先,`PropertiesUtil`类可能包含以下几个核心方法: 1....
这里我们关注的是一个名为"TextFile"的Java类,它提供了对文本文件进行读写的功能。JavaBean是一种特殊类型的Java类,设计用于数据封装和组件重用,通常遵循特定的命名和编码规范。在这个场景下,`TextFile`可能就是...
dxflib是一个开源的C++库,专门设计用于读取和写入这种文件格式,为开发者提供了处理DXF文件的强大工具。 dxflib库的核心功能在于解析DXF文件结构,它能够识别并解析文件中的各个组成部分,如图形实体(线条、圆、...
"Swift 文件和文件夹操作辅助工具类.zip"是一个开源项目,旨在提供一套优雅且易于使用的API来简化这些操作。下面将详细探讨这个项目中可能包含的关键知识点。 1. **文件系统访问**: - 使用`FileManager`类:Swift...
总的来说,理解并掌握如何生成Hibernate配置文件和XML映射文件的辅助类,是提升Java开发效率的一个重要环节。它涉及到Java反射、XML解析、文件操作等多个技术领域,同时也体现了软件工程中自动化和模块化的设计思想...
2. **创建解析器**:使用`DocumentBuilderFactory`类创建一个解析器实例,然后通过`newDocumentBuilder()`方法生成`DocumentBuilder`对象。 3. **解析XML文件**:调用`parse()`方法,传入XML文件的输入流或路径,...
至于`util`这个文件,可能是一个包含实用工具类的Java包,其中可能有用于处理XML和属性文件的辅助函数。这些工具类通常封装了读写操作,提供了一致且易于使用的API,从而简化代码并提高代码的可维护性。 在开发过程...
总结来说,C#游戏辅助helper类利用内存多级指针读写和进程操作技术,可以实现对游戏内存的深入访问,从而创建各种游戏辅助工具。然而,这些技术需要对底层操作系统和C#编程有深入理解,并且在实际应用时应遵循相关...
综上所述,这个压缩包提供了一个关于如何在编程环境中获取和展示文件信息的实例,涵盖了文件属性、大小和创建时间等关键信息。通过分析提供的源码,我们可以学习到如何在实际项目中实现类似功能,这对于系统开发和...
- 开发者可以通过`Properties.load()`方法读取属性文件,`Properties.store()`方法将其写入到文件,从而实现配置信息的读写。 4. **工具辅助**: - 属性文件插件除了提供编辑功能外,可能还包括搜索、替换、版本...
MATLAB是一个强大的数学计算和数据分析软件,其内置的函数可以方便地处理STL文件。读取STL文件的关键在于使用`stlread`或`stlreadascii`函数,这两个函数分别用于读取二进制和ASCII格式的STL文件。以下是一些关键...
总的来说,`FTPS上传下载文件辅助类`在C#中需要处理的关键点包括建立安全连接、设置FTP操作类型、读写文件流以及可能需要的目录遍历。对于更复杂的需求,如断点续传、错误处理和重试机制,还需要进一步的代码实现和...
导出DataView到一个Excel文档中的Excel辅助类(Export2Excel.cs)关联文件(...文件操作辅助类(INIFileUtil.cs)独立存储操作辅助类(IsolatedStorageHelper.cs)序列号操作辅助类(Serializer.cs)获取一个对象...
标题提到的"100个C#辅助类"可能包含了一系列这样的实用工具类,涵盖了各种常见的任务处理,如图表生成、CSV文件操作、Excel处理、FTP文件传输、MVC中的文件上传、PDF文档处理以及数据导出到Excel等功能。下面将对...
4. **SysConfigUtil.java**:与`SystemConfig.java`类似,这个类可能是一个系统配置的通用工具类,提供了对XML配置文件的便利操作。它可能包含一些辅助方法,如读取特定配置项、验证配置值等,以简化开发者的代码。 ...
它以纯文本形式存储数值和文本信息,每一行表示一个数据记录,记录中的字段由逗号分隔。在实际开发过程中,经常需要读取或写入CSV文件来处理数据。 #### 二、函数设计与实现 本节将详细介绍如何实现读取和写入CSV...
这个文件很可能实现了一个SQL帮助器类,它封装了对ADO.NET(.NET框架中的数据库访问组件)的操作,比如执行SQL语句、存储过程等。以下是一些可能包含的功能: - **连接管理**:包括打开、关闭数据库连接,以及...