项目中生成下载目录

项目中需要下载excel文件到目录,目录路径在环境变量中指明的属性文件中配置(方便修改而不需要改代码)。

项目代码结构如下:


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方法>构造代码块>构造方法。如果类中包含多个静态代码块,那么将按照"先定义的代码先执行,后定义的代码后执行"。





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值