项目中生成下载目录
2016-12-28 18:45
375 查看
项目中需要下载excel文件到目录,目录路径在环境变量中指明的属性文件中配置(方便修改而不需要改代码)。
项目代码结构如下:
Test测试类:
运行结果:
操作系统的类型为:Windows 7
从属性文件中获取的目录为:e:/nfsc/OETS/expired
SettingUtil关键类:
CvsUtil工具类:
属性文件内容:
属性文件环境变量配置:
相关知识点说明:
静态代码块:
1.静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。
2.静态代码块的执行顺序:(优先级从高到低)静态代码块>mian方法>构造代码块>构造方法。如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。
项目代码结构如下:
Test测试类:
package createFolder; public class Test { public static void main(String[] args) { String path = SettingUtil.getTestPath(); System.out.println("操作系统的类型为:"+System.getProperty("os.name")); System.out.println("从属性文件中获取的目录为:" + path); } }
运行结果:
操作系统的类型为:Windows 7
从属性文件中获取的目录为:e:/nfsc/OETS/expired
SettingUtil关键类:
package createFolder; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.Properties; public class SettingUtil { private static Properties constants; private static final String TEST_CONF_PATH = "TEST_CONF_PATH"; static { String confPath = System.getenv().get(TEST_CONF_PATH);//该方法得到系统环境变量的值 constants = new Properties(); try { String path = confPath + "/testconfig.properties"; File file = new File(path); InputStream in = new FileInputStream(file); constants.load(in); //加载属性文件 in.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 根据配置文件中配置的内容得到存放路径(把路径放到配置文件中是因为方便更改) * @return */ public static String getTestPath() { String path = getPropertyBySystem("oets.path.root") + getProperty("oets.path.expired"); CsvUtil.checkDirectory(path); return path; } /** * 根据操作系统的类型(windows/unix)得到配置的根目录路径(不同操作系统对应不同目录) * @param key * @return */ private static String getPropertyBySystem(String key) { String osname = System.getProperty("os.name").toLowerCase();//得到操作系统的类型 if (osname.contains("win")) { String orgUrl = getProperty(key + ".win"); orgUrl = CsvUtil.checkExist(orgUrl); return orgUrl; } return getProperty(key + ".unix"); } private static String getProperty(String key) { if (constants != null) return constants.getProperty(key); else return null; } }
CvsUtil工具类:
package createFolder; import java.io.File; public class CsvUtil { /** * 判断配置路径中的盘符是否存在,如果不存在,尝试向上递增盘符查找,直到找到为止 */ public static String checkExist(String orgUrl) { String disk = orgUrl.substring(0, 2); File file = new File(disk); while (!file.exists()) { disk = (char) (disk.charAt(0) + 1) + disk.substring(1); file = new File(disk); } return disk + orgUrl.substring(2); } /** * 判断文件夹是否存在,否则创建;参数为true的话删除历史文件 * * @param filePath * @param idDelHistoryFile */ public static void checkDirectory(String filePath) { /** * 判断文件夹是否存在 */ File file = new File(filePath); if (file.exists()) { file.mkdirs(); } } }属性文件存放路径:
属性文件内容:
属性文件环境变量配置:
相关知识点说明:
静态代码块:
1.静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。
2.静态代码块的执行顺序:(优先级从高到低)静态代码块>mian方法>构造代码块>构造方法。如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。
相关文章推荐
- 机器人自主定位导航 ROS真的好用吗?优缺点剖析
- 机器人自主定位导航 ROS真的好用吗?优缺点剖析
- ABP文档翻译--值对象
- Windows自带压缩解压工具
- PHP安装mysql.so扩展
- CocoaPods 导入第三方库头文件自动补齐
- linux初学<习题二>管理刚才新建立的文件!
- 判断是什么浏览器
- PhxSQL使用及部署——替换druid metadata使用的mysql
- eclipse、myeclipse 反编译插件 轻松查看源代码
- JavaIO 文件递归遍历及常用File类操作
- Java 单例模式
- yum update时候出现Another app is currently holding the yum lock解决方法
- Android中的ViewRootImpl类源码解析
- Android 图片压缩的那些事
- oracle注解生成整形主键策略
- open,write,read函数
- mongodb 内嵌数组 操作符 $slice 用法
- eclipse 导入代码风格.xml 文件
- 汇编语言 写 Hello World