zoukankan      html  css  js  c++  java
  • Java开发常用Util工具类

    MyStringUtil、MyCastUtil、MyCollectionUtil、MyArrayUtil、MyPropsUtil

    一、字符串工具类MyStringUtil

    java内部提供了一个实用工具类-------> StringUtils  不做详细表述

    这里MyStringUtil
    /**
     * StringUtil
     * @description: 字符串工具类
     **/
    public class MyStringUtil {
    
        /**
         * 判断是否为空字符串最优代码
         * @param str
         * @return 如果为空,则返回true
         */
        public static boolean isEmpty(String str){
            return str == null || str.trim().length() == 0;
        }
    
        /**
         * 判断字符串是否非空
         * @param str 如果不为空,则返回true
         * @return
         */
        public static boolean isNotEmpty(String str){
            return !isEmpty(str);
        }
    }

    二、数据类型转换类MyCastUtil

    MyCastUtil
    /**
     * MyCastUtil
     * @description: 数据转型工具类
     **/
    public class MyCastUtil{
        /** 
        * @Description: 转为String类型
        * @Param: [obj] 
        * @return: java.lang.String 如果参数为null则转为空字符串
        */ 
        public static String castString(Object obj){
            return MyCastUtil.castString(obj,"");
        }
    
        /** 
        * @Description: 转为String类型(提供默认值)
        * @Param: [obj, defaultValue] 将obj转为string,如果obj为null则返回default
        * @return: String
        */ 
        public static String castString(Object obj,String defaultValue){
            return obj!=null?String.valueOf(obj):defaultValue;
        }
    
        /** 
        * @Description: 转为double类型,如果为null或者空字符串或者格式不对则返回0
        * @Param: [obj] 
        * @return: String
        */ 
        public static double castDouble(Object obj){
            return MyCastUtil.castDouble(obj,0);
        }
    
        /** 
        * @Description: 转为double类型 ,如果obj为null或者空字符串或者格式不对则返回defaultValue
        * @Param: [obj, defaultValue] 
        * @return: String obj为null或者空字符串或者格式不对返回defaultValue
        */ 
        public static double castDouble(Object obj,double defaultValue){
            double value = defaultValue;  //声明结果,把默认值赋给结果
            if (obj!=null){   //判断是否为null
                String strValue = castString(obj);  //转换为String
                if (StringUtil.isNotEmpty(strValue)){   //判断字符串是否为空(是否为空只能判断字符串,不能判断Object)
                    try{
                        value = Double.parseDouble(strValue);  //不为空则把值赋给value
                    }catch (NumberFormatException e){
                        value = defaultValue;  //格式不对把默认值赋给value
                    }
    
                }
            }
            return value;
        }
    
        /**
         * 转为long型,如果obj为null或者空字符串或者格式不对则返回0
         * @param obj
         * @return
         */
        public static long castLong(Object obj){
            return MyCastUtil.castLong(obj,0);
        }
    
        /**
         * 转为long型(提供默认数值),如果obj为null或者空字符串或者格式不对则返回defaultValue
         * @param obj
         * @param defaultValue
         * @return obj为null或者空字符串或者格式不对返回defaultValue
         */
        public static long castLong(Object obj,long defaultValue){
            long value = defaultValue;  //声明结果,把默认值赋给结果
            if (obj!=null){   //判断是否为null
                String strValue = castString(obj);  //转换为String
                if (StringUtil.isNotEmpty(strValue)){   //判断字符串是否为空(是否为空只能判断字符串,不能判断Object)
                    try{
                        value = Long.parseLong(strValue);  //不为空则把值赋给value
                    }catch (NumberFormatException e){
                        value = defaultValue;  //格式不对把默认值赋给value
                    }
    
                }
            }
            return value;
        }
    
        /**
         * 转为int型
         * @param obj
         * @return 如果obj为null或者空字符串或者格式不对则返回0
         */
        public static int castInt(Object obj){
            return MyCastUtil.castInt(obj,0);
        }
    
        /**
         * 转为int型(提供默认值)
         * @param obj
         * @param defaultValue
         * @return 如果obj为null或者空字符串或者格式不对则返回defaultValue
         */
        public static int castInt(Object obj,int defaultValue){
            int value = defaultValue;  //声明结果,把默认值赋给结果
            if (obj!=null){   //判断是否为null
                String strValue = castString(obj);  //转换为String
                if (StringUtil.isNotEmpty(strValue)){   //判断字符串是否为空(是否为空只能判断字符串,不能判断Object)
                    try{
                        value = Integer.parseInt(strValue);  //不为空则把值赋给value
                    }catch (NumberFormatException e){
                        value = defaultValue;  //格式不对把默认值赋给value
                    }
    
                }
            }
            return value;
        }
    
        /**
         * 转为boolean型,不是true的返回为false
         * @param obj
         * @return
         */
        public static boolean castBoolean(Object obj){
            return MyCastUtil.castBoolean(obj,false);
        }
    
    
        /**
         * 转为boolean型(提供默认值)
         * @param obj
         * @param defaultValue
         * @return
         */
        public static boolean castBoolean(Object obj,boolean defaultValue){
            boolean value = defaultValue;
            if (obj!=null){  //为null则返回默认值
                value = Boolean.parseBoolean(castString(obj));  //底层会把字符串和true对比,所以不用判断是否为空字符串
            }
            return value;
        }
    }

    三、集合工具类MyCollectionUtil

    MyCollectionUtil
    import org.apache.commons.collections4.CollectionUtils;
    import org.apache.commons.collections4.MapUtils;
    import java.util.Collection;
    import java.util.Map;
    
    /**
     * CollectionUtil
     * @description: 集合工具类
     **/
    public class MyCollectionUtil {
        /**
         * 判断collection是否为空
         * @param collection
         * @return
         */
        public static boolean isEmpty(Collection<?> collection){
            //return CollectionUtils.isEmpty(collection);
            return collection == null || collection.isEmpty();
        }
    
        /**
         * 判断Collection是否非空
         * @return
         */
        public static boolean isNotEmpty(Collection<?> collection){
            return !isEmpty(collection);
        }
    
        /**
         * 判断map是否为空
         * @param map
         * @return
         */
        public static boolean isEmpty(Map<?,?> map){
            //return MapUtils.isEmpty(map);
            return map == null || map.isEmpty();
        }
    
        /**
         * 判断map是否非
         * @param map
         * @return
         */
        public static boolean isNotEmpty(Map<?,?> map){
            return !isEmpty(map);
        }
    }

    四、数组工具类MyArrayUtil

    MyArrayUtil
    /**
     * 数组工具类
     */
    public class MyArrayUtil{
        /**
         * 判断数组是否为空
         * @param array
         * @return
         */
        public static boolean isNotEmpty(Object[] array){
            return !isEmpty(array);
        }
    
        /**
         * 判断数组是否非空
         * @param array
         * @return
         */
        public static boolean isEmpty(Object[] array){
            return array==null||array.length==0;
        }
    }

    五、Properties文件操作类

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    /**
     * 属性文件工具类
     */
    public class PropsUtil {
        private static final Logger LOGGER = LoggerFactory.getLogger(PropsUtil.class);
    
        /**
         * 加载属性文件
         * @param fileName fileName一定要在class下面及java根目录或者resource跟目录下
         * @return
         */
        public static Properties loadProps(String fileName){
            Properties props = new Properties();
            InputStream is = null;
            try {
                //将资源文件加载为流
                is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
                props.load(is);
                if(is==null){
                   throw new FileNotFoundException(fileName+"file is not Found");
                }
            } catch (FileNotFoundException e) {
                LOGGER.error("load properties file filure",e);
            }finally {
                if(is !=null){
                    try {
                        is.close();
                    } catch (IOException e) {
                        LOGGER.error("close input stream failure",e);
                    }
                }
            }
            return props;
        }
    
        /**
         * 获取字符型属性(默认值为空字符串)
         * @param props
         * @param key
         * @return
         */
        public static String getString(Properties props,String key){
            return getString(props,key,"");
        }
    
        /**
         * 获取字符型属性(可制定默认值)
         * @param props
         * @param key
         * @param defaultValue 当文件中无此key对应的则返回defaultValue
         * @return
         */
        public static String getString(Properties props,String key,String defaultValue){
            String value = defaultValue;
            if (props.containsKey(key)){
                value = props.getProperty(key);
            }
            return value;
        }
    
        /**
         * 获取数值型属性(默认值为0)
         * @param props
         * @param key
         * @return
         */
        public static int getInt(Properties props,String key){
            return getInt(props,key,0);
        }
    
        /**
         * 获取数值型属性(可指定默认值)
         * @param props
         * @param key
         * @param defaultValue
         * @return
         */
        public static int getInt(Properties props,String key,int defaultValue){
            int value = defaultValue;
            if (props.containsKey(key)){
                value = CastUtil.castInt(props.getProperty(key));
            }
            return value;
        }
    
        /**
         * 获取布尔型属性(默认值为false)
         * @param props
         * @param key
         * @return
         */
        public static boolean getBoolean(Properties props,String key){
            return getBoolean(props,key,false);
        }
    
        /**
         * 获取布尔型属性(可指定默认值)
         * @param props
         * @param key
         * @param defaultValue
         * @return
         */
        public static boolean getBoolean(Properties props,String key,Boolean defaultValue){
            boolean value = defaultValue;
            if (props.containsKey(key)){
                value = CastUtil.castBoolean(props.getProperty(key));
            }
            return value;
        }
    }

            <!--slf4j 用到的maven坐标-->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.9</version>
            </dependency>
     

    六、常用流操作工具类

    public class StreamUtil {
        private static final Logger LOGGER = LoggerFactory.getLogger(StreamUtil.class);
    
        /**
         * 从输入流中获取字符串
         * @param is
         * @return
         */
        public static String getString(InputStream is){
            StringBuilder sb = new StringBuilder();
            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(is));
                String line;
                while((line=reader.readLine())!=null){
                    sb.append(line);
                }
            } catch (IOException e) {
                LOGGER.error("get string failure",e);
                throw new RuntimeException(e);
            }
            return sb.toString();
        }
    
    }

    七、编码工具类

    public class CodecUtil {
        private static final Logger LOGGER = LoggerFactory.getLogger(CodecUtil.class);
    
        /**
         * 将URL编码
         */
        public static String encodeURL(String source){
            String target;
            try {
                target = URLEncoder.encode(source,"utf-8");
            } catch (UnsupportedEncodingException e) {
                LOGGER.error("encode url failure",e);
                throw new RuntimeException(e);
                //e.printStackTrace();
            }
            return target;
        }
    
        /**
         * 将URL解码
         */
        public static String dencodeURL(String source){
            String target;
            try {
                target = URLDecoder.decode(source,"utf-8");
            } catch (UnsupportedEncodingException e) {
                LOGGER.error("encode url failure",e);
                throw new RuntimeException(e);
                //e.printStackTrace();
            }
            return target;
        }
    }

    八、下载文件工具类

     /**
         * 下载url的文件到指定文件路径里面,如果文件父文件夹不存在则自动创建
         * url 下载的http地址
         * path 文件存储地址
         * return 如果文件大小大于2k则返回true
         */
        public static boolean downloadCreateDir(String url,String path){
            HttpURLConnection connection=null;
            InputStream in = null;
            FileOutputStream o=null;
            try{
                URL httpUrl=new URL(url);
                connection = (HttpURLConnection) httpUrl.openConnection();
                connection.setRequestProperty("accept", "*/*");
                connection.setRequestProperty("Charset", "gbk");
                connection.setRequestProperty("connection", "Keep-Alive");
                connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                connection.setRequestMethod("GET");
                
                byte[] data=new byte[1024];
                File f=new File(path);
                File parentDir = f.getParentFile();
                if (!parentDir.exists()) {
                    parentDir.mkdirs();
                }
                if(connection.getResponseCode() == 200){
                    in = connection.getInputStream();
                    o=new FileOutputStream(path);
                    int n=0;
                    while((n=in.read(data))>0){
                        o.write(data, 0, n);
                        o.flush();
                    }
                }
                if(f.length()>2048){  //代表文件大小
                    return true;  //如果文件大于2k则返回true
                }
            }catch(Exception ex){
                ex.printStackTrace();
            }finally{
                try{
                    if(in != null){
                        in.close();
                    }
                }catch(IOException ex){
                    ex.printStackTrace();
                }
                try{o.close();}catch(Exception ex){}
                try{connection.disconnect();}catch(Exception ex){}
            }
            return false;
        }

    九、文件编码转码

    将GBK编码的文件转为UTF-8编码的文件

    经常配合上一个使用,下载的压缩包解压为文件然后解码。

     /**
         * 把GBK文件转为UTF-8
         * 两个参数值可以为同一个路径
         * @param srcFileName 源文件
         * @param destFileName 目标文件
         * @throws IOException
         */
        private static void transferFile(String srcFileName, String destFileName) throws IOException {
            String line_separator = System.getProperty("line.separator"); 
            FileInputStream fis = new FileInputStream(srcFileName);
            StringBuffer content = new StringBuffer();
            DataInputStream in = new DataInputStream(fis);
            BufferedReader d = new BufferedReader(new InputStreamReader(in, "GBK"));  //源文件的编码方式
            String line = null;
            while ((line = d.readLine()) != null)
             content.append(line + line_separator);
            d.close();
            in.close();
            fis.close();
                
            Writer ow = new OutputStreamWriter(new FileOutputStream(destFileName), "utf-8");  //需要转换的编码方式
            ow.write(content.toString());
            ow.close();
        }

    参考 :https://www.cnblogs.com/aeolian/p/9484247.html

  • 相关阅读:
    matrix_last_acm_4
    matrix_last_acm_3
    matrix_last_acm_2
    matrix_last_acm_1
    2015亚洲区北京站网络赛
    poj 1062 昂贵的聘礼 最短路
    2-SAT !!
    hdu 4925
    hdu 4927 Java大数
    poj3687 拓扑排序 还没怎么搞明白 回头再想想
  • 原文地址:https://www.cnblogs.com/wdzhz/p/12487837.html
Copyright © 2011-2022 走看看