对JAVA资源文件操作工具类

package com.kkmall.risk.common.utils;

import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLConnection;
import java.util.Properties;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

/**
 * 对JAVA资源文件操作工具类
 * 该类为配置类 
 * 
 */
public class PropertyContext {

    private Properties propertie;
    private String filePath;
    private String coding = "UTF-8";
    private static PropertyContext context = null;

    public static PropertyContext PropertyContextFactory(String pathFile) {
        if (StringUtils.isNotBlank(ObjectUtils.toString(context)))
            return context;
        return new PropertyContext(pathFile);
    }

    private PropertyContext() {
        // TODO Auto-generated constructor stub
    }

    /**
     * 初始化 propertie 对像
     * 
     * @param pathFile
     */
    private PropertyContext(String pathFile) {
        // TODO Auto-generated constructor stub
        Properties prope;
        InputStream inputStream = null;
        try {
            URLConnection urlConnection = this.getFileCon(pathFile);
            if (StringUtils.isBlank(ObjectUtils.toString(urlConnection))) {
                System.out.println("YSLog:"+"ERROR File:" + pathFile + " not find!");
                return;
            } else {
                inputStream = urlConnection.getInputStream();
            }
            if (StringUtils.isNotBlank(ObjectUtils.toString(inputStream))) {
                prope = new Properties();
            } else {
                System.out.println("YSLog:"+"ERROR File:" + pathFile + " not find!");
                return;
            }
            prope.load(inputStream);
            this.propertie = prope;
            this.filePath = pathFile;
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        } finally {
            try {
                if (StringUtils.isNotBlank(ObjectUtils.toString(inputStream))) {
                    inputStream.close();
                    inputStream = null;
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    /**
     * 初始化 propertie 对像
     * 
     * @param pathFile
     */
    public PropertyContext(String pathFile, String coding) {
        // TODO Auto-generated constructor stub
        Properties prope;
        InputStream inputStream = null;
        try {
            URLConnection urlConnection = this.getFileCon(pathFile);
            if (StringUtils.isBlank(ObjectUtils.toString(urlConnection))) {
                System.out.println("weixinLog:"+"ERROR File:" + pathFile + " not find!");
                return;
            } else {
                inputStream = urlConnection.getInputStream();
            }
            if (StringUtils.isNotBlank(ObjectUtils.toString(inputStream))) {
                prope = new Properties();
            } else {
                System.out.println("weixinLog:"+"ERROR File:" + pathFile + " not find!");
                return;
            }
            prope.load(inputStream);
            this.propertie = prope;
            this.filePath = pathFile;
            this.coding = coding;
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        } finally {
            try {
                if (StringUtils.isNotBlank(ObjectUtils.toString(inputStream))) {
                    inputStream.close();
                    inputStream = null;
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    /**
     * 得到URLConnection 对像
     * 
     * @param filename
     * @return URLConnection
     */
    private URLConnection getFileCon(String filename) {
        try {
            Resource resource = new ClassPathResource(filename);

            if (resource.exists()) {
                return resource.getURL().openConnection();
            } else {
                System.out.println("weixinLog:"+"ERROR File:" + filename + " not find!");
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public String getValue(String key) {
        try {
            String value = this.propertie.getProperty(key);
            if (StringUtils.isNotBlank(value)) {
                byte[] bytes = value.getBytes("iso8859-1");
                String str = new String(bytes, this.coding);
                return str;
            }
            return null;
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return null;
        }
    }

    public String get(String key) {
        try {
            return this.propertie.getProperty(key);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return null;
        }
    }

    public String getChinese(String key) {
        try {
            String value = this.propertie.getProperty(key);
            if (StringUtils.isNotBlank(value)) {
                byte[] bytes = value.getBytes("iso8859-1");
                String str = new String(bytes, "GBK");
                return str;
            }
            return null;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return null;
        }
    }
}

测试类:

package com.kkmall.risk.common.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


/**
 * 根据时间验证数据是否有效
 * 
 * @author gan
 *
 *         2018年10月17日
 */
public class DataValidity {
	
	private static PropertyContext propertyContext = PropertyContext.PropertyContextFactory("config.properties");
	
	private static final String DAY = propertyContext.get("day");
	
	public static Boolean validity(Date date1) {
		Date date2 = new Date();
		int day = differentDaysByMillisecond(date1, date2);
		if (day >= Integer.parseInt(DAY) ) {
			return true;
		}
		return false;
	}

	public static int differentDaysByMillisecond(Date date1, Date date2) {
		int days = (int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24));
		return days;
	}
	
	public static void main(String[] args) {
		String dateStr = "2008-1-1 1:21:28";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try 
        {
            Date date = format.parse(dateStr);
            System.out.println(validity(date));
        } catch (ParseException e) {
            e.printStackTrace();
        }
	}

}

两个类写完,你还要创建config.properties文件:

day=30

package com.hexiang.utils; import java.io.*; /** * FileUtil. Simple file operation class. * * @author BeanSoft * */ public class FileUtil { /** * The buffer. */ protected static byte buf[] = new byte[1024]; /** * Read content from local file. FIXME How to judge UTF-8 and GBK, the * correct code should be: FileReader fr = new FileReader(new * InputStreamReader(fileName, "ENCODING")); Might let the user select the * encoding would be a better idea. While reading UTF-8 files, the content * is bad when saved out. * * @param fileName - * local file name to read * @return * @throws Exception */ public static String readFileAsString(String fileName) throws Exception { String content = new String(readFileBinary(fileName)); return content; } /** * 读取文件并返回为给定字符集的字符串. * @param fileName * @param encoding * @return * @throws Exception */ public static String readFileAsString(String fileName, String encoding) throws Exception { String content = new String(readFileBinary(fileName), encoding); return content; } /** * 读取文件并返回为给定字符集的字符串. * @param fileName * @param encoding * @return * @throws Exception */ public static String readFileAsString(InputStream in) throws Exception { String content = new String(readFileBinary(in)); return content; } /** * Read content from local file to binary byte array. * * @param fileName - * local file name to read * @return * @throws Exception */ public static byte[] readFileBinary(String fileName) throws Exception { FileInputStream fin = new FileInputStream(fileName); return readFileBinary(fin); } /** * 从输入流读取数据为二进制字节数组. * @param streamIn * @return * @throws IOException */ public static byte[] readFileBinary(InputStream streamIn) throws IOException { BufferedInputStream in = new BufferedInputStream(streamIn); ByteArrayOutputStream out = new ByteArrayOutputStream(10240); int len; while ((len
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值