zoukankan      html  css  js  c++  java
  • 反射工具类、流操作工具类、文件操作工具类

    package hjp.smart4j.framework.util;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    /**
     * 反射工具类
     */
    public final class ReflectionUtil {
        private static final Logger LOGGER = LoggerFactory.getLogger(ReflectionUtil.class);
    
        /**
         * 创建实例
         */
        public static Object newInstance(Class<?> cls) {
            Object instance;
            try {
                instance = cls.newInstance();
            } catch (Exception e) {
                LOGGER.error("new instance failure", e);
                throw new RuntimeException(e);
            }
            return instance;
        }
    
        /**
         * 调用方法
         */
        public static Object invokeMethod(Object obj, Method method, Object... args) {
            Object result;
            try {
                method.setAccessible(true);//true 则指示反射的对象在使用时应该取消 Java 语言访问检查, false 则指示反射的对象应该实施 Java 语言访问检查
                result = method.invoke(obj, args);
            } catch (Exception e) {
                LOGGER.error("invoke method failure", e);
                throw new RuntimeException(e);
            }
            return result;
        }
    
        /**
         * 设置成员变量的值
         */
        public static void setField(Object obj, Field field, Object value) {
            try {
                field.setAccessible(true);
                field.set(obj, value);
            } catch (Exception e) {
                LOGGER.error("set field failure", e);
                throw new RuntimeException(e);
            }
        }
    }
    ReflectionUtil
    package hjp.smart4j.framework.util;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    
    /**
     * 流操作工具类
     */
    public final class StreamUtil {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(StreamUtil.class);
    
        /**
         * 从输入流中获取字符串
         */
        public static String getString(InputStream inputStream) {
            StringBuilder stringBuilder = new StringBuilder();
            try {
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                String line;
                while ((line = bufferedReader.readLine()) != null) {
                    stringBuilder.append(line);
                }
            } catch (Exception e) {
                LOGGER.error("get string failure", e);
                throw new RuntimeException(e);
            }
            return stringBuilder.toString();
        }
    
        /**
         * 将输入流复制到输出流
         */
        public static void copyStream(InputStream inputStream, OutputStream outputStream) {
            try {
                int length;
                byte[] buffer = new byte[4 * 1024];
                while ((length = inputStream.read(buffer, 0, buffer.length)) != -1) {
                    outputStream.write(buffer, 0, length);
                }
                outputStream.flush();
            } catch (Exception e) {
                LOGGER.error("copy stream failure", e);
                throw new RuntimeException(e);
            } finally {
                try {
    
                } catch (Exception e) {
                    LOGGER.error("close stream failure", e);
                }
            }
        }
    
    }
    StreamUtil
    package hjp.smart4j.framework.util;
    
    import org.apache.commons.io.FileUtils;
    import org.apache.commons.io.FilenameUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.File;
    
    /**
     * 文件操作工具类
     */
    public final class FileUtil {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(FileUtil.class);
    
        /**
         * 获取真实文件名(自动去掉文件路径)
         */
        public static String getRealFileName(String fileName) {
            return FilenameUtils.getName(fileName);
        }
    
        /**
         * 创建文件
         */
        public static File createFile(String filePath) {
            File file;
            try {
                file = new File(filePath);
                File parentDir = file.getParentFile();
                if (!parentDir.exists()) {
                    FileUtils.forceMkdir(parentDir);
                }
                file.createNewFile();
            } catch (Exception e) {
                LOGGER.error("create file failure", e);
                throw new RuntimeException(e);
            }
            return file;
        }
    
        /**
         * 删除文件
         */
        public static boolean deleteFile(String filePath) {
            File file = new File(filePath);
            if (file.isFile()) {
                return file.delete();
            } else {
                return deleteDir(file);
            }
        }
    
        private static boolean deleteDir(File file) {
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                for (File file1 : files) {
                    if(file1.isDirectory()){
                        deleteDir(file1);
                    }else {
                        file1.delete();
                    }
                }
            }
            return file.delete();
        }
    }
    FileUtil
  • 相关阅读:
    BZOJ2821 作诗(Poetize) 【分块】
    BZOJ2724 蒲公英 【分块】
    Codeforces 17E Palisection 【Manacher】
    BZOJ2565 最长双回文串 【Manacher】
    Codeforces 25E Test 【Hash】
    CODEVS3013 单词背诵 【Hash】【MAP】
    HDU2825 Wireless Password 【AC自动机】【状压DP】
    HDU2896 病毒侵袭 【AC自动机】
    HDU3065 病毒侵袭持续中【AC自动机】
    HDU2222 Keywords Search 【AC自动机】
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/5584529.html
Copyright © 2011-2022 走看看