依据不同的操作系统读取配置文件/java读取属性文件代码
package cn.com.css.common.util;
/**
* @brief OSEnum.java 操作系统的枚举
* @attention
* @author 涂作权
* @date 2014年4月3日
* @note begin modify by null
*/
public enum EOSPlatForm {
Any("any"),
Linux("Linux"),
Mac_OS("Mac OS"),
Mac_OS_X("Mac OS X"),
Windows("Windows"),
OS2("OS/2"),
Solaris("Solaris"),
SunOS("SunOS"),
MPEiX("MPE/iX"),
HP_UX("HP-UX"),
AIX("AIX"),
OS390("OS/390"),
FreeBSD("FreeBSD"),
Irix("Irix"),
Digital_Unix("Digital Unix"),
NetWare_411("NetWare"),
OSF1("OSF1"),
OpenVMS("OpenVMS"),
Others("Others");
/** 描写叙述信息 **/
private String description;
/**
* @param desc 描写叙述信息
*/
EOSPlatForm(String desc) {
this.description = desc;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
package cn.com.css.common.util;
/**
* @brief OSInfo.java 通过这个类获得操作信息信息
* @attention
* @author 涂作权
* @date 2014年4月3日
* @note begin modify by null
*/
public class OSInfo {
/** 操作系统名称 **/
private static String OS_NAME = System.getProperty("os.name").toLowerCase();
private static OSInfo osInfoInstance = new OSInfo();
private EOSPlatForm osPlatForm;
private OSInfo() {
}
/**
* \brief 推断是否是Linux操作系统
*
* @return
* @attention
* @author 涂作权
* @date 2014年4月3日
* @note begin modify by null
*/
public static boolean isLinux() {
return OS_NAME.indexOf("linux") >= 0;
}
/**
* \brief 推断是否是MacOS操作系统
*
* @return
* @attention
* @author 涂作权
* @date 2014年4月3日
* @note begin modify by null
*/
public static boolean isMacOS() {
return OS_NAME.indexOf("mac") >= 0 && OS_NAME.indexOf("os") > 0
&& OS_NAME.indexOf("x") < 0;
}
/**
* \brief 推断是否是MacOSX操作系统
*
* @return
* @attention
* @author 涂作权
* @date 2014年4月3日
* @note begin modify by null
*/
public static boolean isMacOSX() {
return OS_NAME.indexOf("mac") >= 0 && OS_NAME.indexOf("os") > 0
&& OS_NAME.indexOf("x") > 0;
}
/**
* \brief 推断是否是windows操作系统
*
* @return
* @attention
* @author 涂作权
* @date 2014年4月3日
* @note begin modify by null
*/
public static boolean isWindows() {
return OS_NAME.indexOf("windows") >= 0;
}
/**
* \brief 推断是否是OS2操作系统
*
* @return
* @attention 方法的使用注意事项
* @author Administrator
* @date 2014-4-3
* @note begin modify by 改动人 改动时间 改动内容摘要说明
*/
public static boolean isOS2() {
return OS_NAME.indexOf("os/2") >= 0;
}
public static boolean isSolaris() {
return OS_NAME.indexOf("solaris") >= 0;
}
public static boolean isSunOS() {
return OS_NAME.indexOf("sunos") >= 0;
}
public static boolean isMPEiX() {
return OS_NAME.indexOf("mpe/ix") >= 0;
}
public static boolean isHPUX() {
return OS_NAME.indexOf("hp-ux") >= 0;
}
public static boolean isAix() {
return OS_NAME.indexOf("aix") >= 0;
}
public static boolean isOS390() {
return OS_NAME.indexOf("os/390") >= 0;
}
public static boolean isFreeBSD() {
return OS_NAME.indexOf("freebsd") >= 0;
}
public static boolean isIrix() {
return OS_NAME.indexOf("irix") >= 0;
}
public static boolean isDigitalUnix() {
return OS_NAME.indexOf("digital") >= 0 && OS_NAME.indexOf("unix") > 0;
}
public static boolean isNetWare() {
return OS_NAME.indexOf("netware") >= 0;
}
public static boolean isOSF1() {
return OS_NAME.indexOf("osf1") >= 0;
}
public static boolean isOpenVMS() {
return OS_NAME.indexOf("openvms") >= 0;
}
/**
* \brief 获得操作系统的名称
*
* @return
* @attention
* @author 涂作权
* @date 2014年4月3日
* @note begin modify by null
*/
public static EOSPlatForm getOSName() {
if (isAix()) {
osInfoInstance.osPlatForm = EOSPlatForm.AIX;
} else if (isDigitalUnix()) {
osInfoInstance.osPlatForm = EOSPlatForm.Digital_Unix;
} else if (isFreeBSD()) {
osInfoInstance.osPlatForm = EOSPlatForm.FreeBSD;
} else if (isHPUX()) {
osInfoInstance.osPlatForm = EOSPlatForm.HP_UX;
} else if (isIrix()) {
osInfoInstance.osPlatForm = EOSPlatForm.Irix;
} else if (isLinux()) {
osInfoInstance.osPlatForm = EOSPlatForm.Linux;
} else if (isMacOS()) {
osInfoInstance.osPlatForm = EOSPlatForm.Mac_OS;
} else if (isMacOSX()) {
osInfoInstance.osPlatForm = EOSPlatForm.Mac_OS_X;
} else if (isMPEiX()) {
osInfoInstance.osPlatForm = EOSPlatForm.MPEiX;
} else if (isNetWare()) {
osInfoInstance.osPlatForm = EOSPlatForm.NetWare_411;
} else if (isOpenVMS()) {
osInfoInstance.osPlatForm = EOSPlatForm.OpenVMS;
} else if (isOS2()) {
osInfoInstance.osPlatForm = EOSPlatForm.OS2;
} else if (isOS390()) {
osInfoInstance.osPlatForm = EOSPlatForm.OS390;
} else if (isOSF1()) {
osInfoInstance.osPlatForm = EOSPlatForm.OSF1;
} else if (isSolaris()) {
osInfoInstance.osPlatForm = EOSPlatForm.Solaris;
} else if (isSunOS()) {
osInfoInstance.osPlatForm = EOSPlatForm.SunOS;
} else if (isWindows()) {
osInfoInstance.osPlatForm = EOSPlatForm.Windows;
} else {
osInfoInstance.osPlatForm = EOSPlatForm.Others;
}
return osInfoInstance.osPlatForm;
}
// public static void main(String[] args) {
// System.out.println(OSInfo.getOSName());
// System.out.println(osInfoInstance.osPlatForm.getDescription());
// System.out.println(System.getProperty("os.name"));
// System.out.println(System.getProperty("os.version"));
// System.out.println(System.getProperty("os.arch"));
// }
}
package cn.com.css.misps.graph.util;
import java.io.File;
import java.io.InputStream;
import java.util.Calendar;
import java.util.Date;
import java.util.Properties;
import cn.com.css.common.util.OSInfo;
/**
* @brief StoragePathUtils.java 图形产品存储相关的类
* @attention 要注意的是:图形产品的存储路径要兼容Linux的。
* @author 涂作权
* @date 2013-9-23
* @note begin modify by null
*/
public final class ProductsStorageUtils
{
public static Calendar calendar;
// 图形产品相应的绝对路径
public static String graphAbsolutePath;
// 图形产品中相应的虚拟路径
public static String graphVirtualPath;
// 文字产品相应的绝对路径
public static String wordAbsolutePath;
// 文字产品相应的虚拟路径
public static String wordVirtualPath;
// micaps磁盘挂接过来的源文件的路径
public static String micapsAbsolutePath;
// micaps虚拟路径
public static String micapsVirtualPath;
// 图形产品今天的文件存储路径
public static String graphTodayStoragePath;
// 图形产品明天的文件存储路径
public static String graphTomorrowStoragePath;
// 图形产品文件存储的相对路径
public static String graphRelativeStoragePath;
// 文字产品今天的文件存储路径
public static String wordTodayStoragePath;
// 文字产品明天的文件存储路径
public static String wordTomorrowStoragePath;
// 文字产品文件存储的相对路径
public static String wordRelativeStoragePath;
// 认证文件存放的位置
public static String authenticationPath;
// 认证文件存放的相对路径
public static String authenticationTodayPath;
// 认证文件第二天要存放的位置
public static String authenticationTomorrowPath;
/** graphTemp文件存储的暂时文件夹存储位置 **/
public static String graphTempAbsolutePath;
/** graphTemp相应的虚拟文件夹 **/
public static String graphTempVirtualPath;
/** 指定数据源时间存储的位置 **/
public static String graphTempTodayStoragePath;
/** 指定数据源第二天存储的位置 **/
public static String graphTempTomorrowStoragePath;
/** 在暂时文件夹里的相对路径**/
public static String graphTempRelativeStoragePath;
public ProductsStorageUtils() {
}
/**
* \brief 编写此方法的目的是获得指定时间的这些对应数据。
*
* @param date
* @return
* @attention 假设不调用这种方法。则表示当天相应的这些数据
* @author 涂作权
* @date 2014-5-23
* @note begin modify by 改动人 改动时间 改动内容摘要说明
*/
@SuppressWarnings("static-access")
public static ProductsStorageUtils changeCalendar(Date date) {
ProductsStorageUtils ps = new ProductsStorageUtils();
ps.calendar.setTime(date);
return ps;
}
/**
* 静态代码块
*/
static {
try {
// 使用默认时区和语言环境获得一个日历
calendar = Calendar.getInstance();
// 今年
int year = calendar.get(Calendar.YEAR);
// 当月
int month = calendar.get(Calendar.MONTH) + 1;
// 当天
int day = calendar.get(Calendar.DAY_OF_MONTH);
// 明天
int tomorrow = day + 1;
InputStream in = null;
// 推断操作系统类型
switch (OSInfo.getOSName()) {
case Windows:
// 读取配置文件,通过类载入的方式读取属性文件
in = ProductsStorageUtils.class.getClassLoader()
.getResourceAsStream("windows_storagepath.properties");
break;
case Linux:
in = ProductsStorageUtils.class.getClassLoader()
.getResourceAsStream("Linux_storagepath.properties");
break;
default:
break;
}
Properties prop = new Properties();
prop.load(in);
// 图形产品相应的绝对路径
graphAbsolutePath = prop.getProperty("productAbsolutePath")
+ File.separator + "graph";
// 图形产品中相应的虚拟路径
graphVirtualPath = prop.getProperty("graphVirtualPath");
// 文字产品相应的绝对路径
wordAbsolutePath = prop.getProperty("productAbsolutePath")
+ File.separator + "word";
// 文字产品相应的虚拟路径
wordVirtualPath = prop.getProperty("wordVirtualPath");
// micaps磁盘挂接过来的源文件的路径
micapsAbsolutePath = prop.getProperty("micapsAbsolutePath");
// micaps虚拟路径
micapsVirtualPath = prop.getProperty("micapsVirtualPath");
// 图片暂时文件夹存储位置
graphTempAbsolutePath = prop.getProperty("graphTempAbsolutePath");
graphTempVirtualPath = prop.getProperty("graphTempVirtualPath");
// 获取图形产品文件存储的根路径
graphTodayStoragePath = graphAbsolutePath + File.separator + year
+ File.separator + ((month > 9) ?
month : "0" + month)
+ File.separator + ((day > 9) ?
day : "0" + day);
// 明天图形产品文件的存储路径
graphTomorrowStoragePath = graphAbsolutePath + File.separator
+ year + File.separator
+ ((month > 9) ? month : "0" + month) + File.separator
+ ((tomorrow > 9) ?
tomorrow : "0" + tomorrow);
// 图形产品文件存储的相对路径
graphRelativeStoragePath = "/" + year + "/"
+ ((month > 9) ? month : "0" + month) + "/"
+ ((day > 9) ?
day : "0" + day);
// 获取暂时图形产品文件存储的根路径
graphTempTodayStoragePath = graphTempAbsolutePath + File.separator + year
+ File.separator + ((month > 9) ? month : "0" + month)
+ File.separator + ((day > 9) ? day : "0" + day);
// 明天图形产品文件的存储路径
graphTempTomorrowStoragePath = graphTempAbsolutePath + File.separator
+ year + File.separator
+ ((month > 9) ? month : "0" + month) + File.separator
+ ((tomorrow > 9) ? tomorrow : "0" + tomorrow);
// 图形产品文件存储的相对路径
graphTempRelativeStoragePath = "/" + year + "/"
+ ((month > 9) ? month : "0" + month) + "/"
+ ((day > 9) ?
day : "0" + day);
// 获取文字产品文件存储的根路径
wordTodayStoragePath = wordAbsolutePath + File.separator + year
+ File.separator + ((month > 9) ?
month : "0" + month)
+ File.separator + ((day > 9) ?
day : "0" + day);
// 明天文字产品文件的存储路径
wordTomorrowStoragePath = wordAbsolutePath + File.separator + year
+ File.separator + ((month > 9) ?
month : "0" + month)
+ File.separator
+ ((tomorrow > 9) ? tomorrow : "0" + tomorrow);
// 文字产品文件相对路径
wordRelativeStoragePath = "/" + year + "/"
+ ((month > 9) ? month : "0" + month) + "/"
+ ((day > 9) ? day : "0" + day);
// 认证文件存放的位置
authenticationPath = prop.getProperty("authenticationPath");
// 认证文件当天存放的位置
authenticationTodayPath = authenticationPath + File.separator
+ year + File.separator
+ ((month > 9) ?
month : "0" + month) + File.separator
+ ((day > 9) ? day : "0" + day);
// 认证文件明天存放的位置
authenticationTomorrowPath = authenticationPath + File.separator
+ year + File.separator
+ ((month > 9) ? month : "0" + month) + File.separator
+ ((tomorrow > 9) ? tomorrow : "0" + tomorrow);
// 关闭流
in.close();
in = null;
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* \brief 创建图形产品明天文件存储的文件文件夹
*
* @attention
*
* @author 涂作权
* @date 2013-10-6
* @note begin modify by 涂作权 2014-02-13
*/
public static void createGraphTomorrowStorageFolder() {
// 推断该目录是否存在,假设存在就不须要创建。假设不存在就创建
File storageFolder = new File(graphTomorrowStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建指定数据源时间的图形产品明天文件存储的文件文件夹
*
* @param date:指定的数据源时间
*
* @attention
*
* @author 涂作权
* @date 2014-5-23
* @note begin modify by 涂作权
*/
@SuppressWarnings("static-access")
public static void createGraphTomorrowStorageFolder(Date date) {
// 推断该目录是否存在。假设存在就不须要创建。假设不存在就创建
File storageFolder = new File(changeCalendar(date).graphTomorrowStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建今天的文件存储路径
*
* @attention
* @author 涂作权
* @date 2014-5-23
* @note begin modify by 涂作权
*/
public static void createGraphTodayStorageFolder() {
// 推断该目录是否存在,假设存在就不须要创建,假设不存在就创建
File storageFolder = new File(graphTodayStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建指定的数据源时间的那天的文件存储路径
*
* @param date:指定的数据源时间
* @attention
* @author 涂作权
* @date 2014-5-23
* @note begin modify by 涂作权
*/
@SuppressWarnings("static-access")
public static void createGraphTodayStorageFolder(Date date) {
// 推断该目录是否存在,假设存在就不须要创建。假设不存在就创建
File storageFolder = new File(
changeCalendar(date).graphTodayStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建图形产品明天文件存储的文件文件夹
*
* @attention
*
* @author 涂作权
* @date 2013-10-6
* @note begin modify by 涂作权 2014-02-13
*/
public static void createGraphTempTomorrowStorageFolder() {
// 推断该目录是否存在,假设存在就不须要创建,假设不存在就创建
File storageFolder = new File(graphTempTomorrowStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建指定数据源时间的图形产品明天文件存储的文件文件夹
*
* @param date:指定的数据源时间
*
* @attention
*
* @author 涂作权
* @date 2014-5-23
* @note begin modify by 涂作权
*/
@SuppressWarnings("static-access")
public static void createGraphTempTomorrowStorageFolder(Date date) {
// 推断该目录是否存在。假设存在就不须要创建,假设不存在就创建
File storageFolder = new File(changeCalendar(date).graphTempTomorrowStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建今天的文件存储路径
*
* @attention
* @author 涂作权
* @date 2014-5-23
* @note begin modify by 涂作权
*/
public static void createGraphTempTodayStorageFolder() {
// 推断该目录是否存在。假设存在就不须要创建。假设不存在就创建
File storageFolder = new File(graphTempTodayStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建指定的数据源时间的那天的文件存储路径
*
* @param date:指定的数据源时间
* @attention
* @author 涂作权
* @date 2014-5-23
* @note begin modify by 涂作权
*/
@SuppressWarnings("static-access")
public static void createGraphTempTodayStorageFolder(Date date) {
// 推断该目录是否存在,假设存在就不须要创建,假设不存在就创建
File storageFolder = new File(changeCalendar(date).graphTempTodayStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建文字产品明天文件存储的文件文件夹
*
* @attention
*
* @author 涂作权
* @date 2013-10-6
* @note begin modify by 涂作权 2014-02-13
*/
public static void createWordTomorrowStorageFolder() {
// 推断该目录是否存在。假设存在就不须要创建,假设不存在就创建
File storageFolder = new File(wordTomorrowStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建指定数据源时间的后一天的文件存储的文件文件夹
*
* @param date :指定的数据源时间
*
* @attention
*
* @author 涂作权
* @date 2014-5-23
* @note begin modify by 涂作权
*/
@SuppressWarnings("static-access")
public static void createWordTomorrowStorageFolder(Date date) {
// 推断该目录是否存在,假设存在就不须要创建,假设不存在就创建
File storageFolder = new File(
changeCalendar(date).wordTomorrowStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建文字产品今天的文件存储路径
*
* @attention
* @author 涂作权
* @date 2013-10-6
* @note begin modify by 涂作权 2014-02-13
*/
public static void createWordTodayStorageFolder() {
// 推断该目录是否存在,假设存在就不须要创建,假设不存在就创建
File storageFolder = new File(wordTodayStoragePath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建指定数据源时间的文字产品所在的文件存储路径
*
* @attention
* @author 涂作权
* @date 2014-05-23
* @note begin modify by 涂作权
*/
@SuppressWarnings("static-access")
public static void createWordTodayStorageFolder(Date date) {
// 推断该目录是否存在,假设存在就不须要创建。假设不存在就创建
File storageFolder = new File(changeCalendar(date).wordTodayStoragePath);
if (storageFolder.exists()){
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建认证文件当天存放文件的位置
*
* @attention
* @author 涂作权
* @date 2014-3-23
* @note begin modify by null
*/
public static void createAuthenticationTodayFolder() {
// 推断该目录是否存在。假设存在就不须要创建。假设不存在就创建
File storageFolder = new File(authenticationTodayPath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建认证文件当天存放文件的位置
*
* @attention
* @author 涂作权
* @date 2014-3-23
* @note begin modify by null
*/
@SuppressWarnings("static-access")
public static void createAuthenticationTodayFolder(Date date) {
// 推断该目录是否存在。假设存在就不须要创建。假设不存在就创建
File storageFolder = new File(changeCalendar(date).authenticationTodayPath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
/**
* \brief 创建认证文件第二天应该应该存放的目录
*
* @attention
* @author 涂作权
* @date 2014-3-23
* @note begin modify by null
*/
public static void createAuthenticationTomorrowFolder() {
File storageFolder = new File(authenticationTomorrowPath);
if (storageFolder.exists()) {
return;
} else {
// 创建目录
storageFolder.mkdirs();
return;
}
}
// @SuppressWarnings("static-access")
// public static void main(String[] args) throws IOException {
// System.out.println(graphAbsolutePath);
// System.out.println(graphVirtualPath);
// System.out.println(graphRelativeStoragePath);
// System.out.println(graphTodayStoragePath);
// System.out.println(graphTomorrowStoragePath);
// System.out.println(wordAbsolutePath);
// System.out.println(wordVirtualPath);
// System.out.println(wordRelativeStoragePath);
// System.out.println(wordTodayStoragePath);
// System.out.println(wordTomorrowStoragePath);
// System.out.println(micapsAbsolutePath);
// System.out.println(micapsVirtualPath);
// System.out.println(authenticationPath);
// System.out.println(authenticationTodayPath);
// System.out.println(authenticationTomorrowPath);
// createAuthenticationTodayFolder();
// createAuthenticationTomorrowFolder();
//
// System.out.println("--- test -- "
// + changeCalendar(new Date()).graphRelativeStoragePath);
// System.out.println(graphTempAbsolutePath);
// System.out.println(graphTempVirtualPath);
// System.out.println(graphTempTodayStoragePath);
// System.out.println(graphTempTomorrowStoragePath);
// System.out.println(graphTempRelativeStoragePath);
//
// createGraphTempTodayStorageFolder();
// }
}
相关文章
- java核心技术卷I-具体的集合
- Java日志记录中很常见的五条规则
- Java 属性文件乱码问题
- Java-Stack
- 运行java的class文件方法详解
- 经验分享丨JAVA审计中常见的加密错误,你知道几个?
- Java加载dll或so库文件的路径 java.library.path
- JAVA变成把一个整数分解成多个质数的积
- java算法实现树型目录反向生成(在指定的盘符或位置生成相应的文件结构)
- mybatis映射文件,当从XXXDao.java中传入的参数是一个对象Provider的时候,那在XXXDao.xml中的Provider的属性id的时候需要怎么写
- JAVA 抽象类与接口
- java基础( 九)-----深入分析Java的序列化与反序列化
- 《大型网站系统与Java中间件》读书笔记 (中)
- 在java中,如何跳出当前的多重循环?
- java设计模式----状态模式
- 教你轻松读懂Java中的Socket编程
- Java 序列化机制
- java文件编译后,出现xx$1.class的原因
- Java 实现文件随机读写-RandomAccessFile
- 全面解读Java中的枚举类型enum的使用
- Java Web Start学习,与JDK中keytool常用命令
- 29个要点帮你完成java代码优化
- java 读取固定目录下的文件(和上篇差点儿相同)
- 基于Java实现Json文件转换为Excel文件
- Caused by: java.lang.RuntimeException: Failed to create最新android studio3.6 无法新建项目
- 深入Java虚拟机之 -- 类文件结构(字节码)
- 【Java 虚拟机原理】Class 字节码二进制文件分析 六 ( 属性类型 | Code 属性 | 属性名称索引 | 属性长度 | 操作数栈最大深度 | 局部变量存储空间 | 字节码长度 )
- Java中的条件编译(转)
- Java数据类型和MySql数据类型对应表
- 阿里巴巴《Java开发手册》2019华山版最新版下载!
- java中iofile的路径问题,确定一个未知方法所需要的文件路径
- Java线程总结
- 我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值