zoukankan      html  css  js  c++  java
  • 公共方法总结

    1、 判断是否为快速点击

        /** 判断是否是快速点击 */
        private static long lastClickTime;
    
        public static boolean isFastDoubleClick() {
            long time = System.currentTimeMillis();
            long timeD = time - lastClickTime;
            if (0 < timeD && timeD < 500) {
    
                return true;
            }
            lastClickTime = time;
            return false;
        }

    2、日志工具类 Log.java

    public class L  
    {  
        private L()  
        {  
            /* 不可被实例化 */  
            throw new UnsupportedOperationException("Cannot be instantiated!");  
        }  
        // 是否需要打印bug,可以在application的onCreate函数里面初始化  
        public static boolean isDebug = true; 
        private static final String TAG = "DefaultTag";  
    
        // 下面四个是默认tag的函数  
        public static void i(String msg)  
        {  
            if (isDebug)  
                Log.i(TAG, msg);  
        }  
    
        public static void d(String msg)  
        {  
            if (isDebug)  
                Log.d(TAG, msg);  
        }  
    
        public static void e(String msg)  
        {  
            if (isDebug)  
                Log.e(TAG, msg);  
        }  
    
        public static void v(String msg)  
        {  
            if (isDebug)  
                Log.v(TAG, msg);  
        }  
    
        // 下面是传入自定义tag的函数  
        public static void i(String tag, String msg)  
        {  
            if (isDebug)  
                Log.i(tag, msg);  
        }  
    
        public static void d(String tag, String msg)  
        {  
            if (isDebug)  
                Log.i(tag, msg);  
        }  
    
        public static void e(String tag, String msg)  
        {  
            if (isDebug)  
                Log.i(tag, msg);  
        }  
    
        public static void v(String tag, String msg)  
        {  
            if (isDebug)  
                Log.i(tag, msg);  
        }  
    }

    3、DensityUtils  

    public class DensityUtils  
    {  
        private DensityUtils()  
        {  
            /* cannot be instantiated */  
            throw new UnsupportedOperationException("cannot be instantiated");  
        }  
    
        /** 
         * dp转px 
         *  
         * @param context 
         * @param val 
         * @return 
         */  
        public static int dp2px(Context context, float dpVal)  
        {  
            return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,  
                    dpVal, context.getResources().getDisplayMetrics());  
        }  
    
        /** 
         * sp转px 
         *  
         * @param context 
         * @param val 
         * @return 
         */  
        public static int sp2px(Context context, float spVal)  
        {  
            return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,  
                    spVal, context.getResources().getDisplayMetrics());  
        }  
    
        /** 
         * px转dp 
         *  
         * @param context 
         * @param pxVal 
         * @return 
         */  
        public static float px2dp(Context context, float pxVal)  
        {  
            final float scale = context.getResources().getDisplayMetrics().density;  
            return (pxVal / scale);  
        }  
    
        /** 
         * px转sp 
         *  
         * @param fontScale 
         * @param pxVal 
         * @return 
         */  
        public static float px2sp(Context context, float pxVal)  
        {  
            return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);  
        }  
    
    }

    4、SD卡相关辅助类 SDCardUtils.java

    public class SDCardUtils  
    {  
        private SDCardUtils()  
        {  
            /* cannot be instantiated */  
            throw new UnsupportedOperationException("cannot be instantiated");  
        }  
    
        /** 
         * 判断SDCard是否可用 
         *  
         * @return 
         */  
        public static boolean isSDCardEnable()  
        {  
            return Environment.getExternalStorageState().equals(  
                    Environment.MEDIA_MOUNTED);  
    
        }  
    
        /** 
         * 获取SD卡路径 
         *  
         * @return 
         */  
        public static String getSDCardPath()  
        {  
            return Environment.getExternalStorageDirectory().getAbsolutePath()  
                    + File.separator;  
        }  
    
        /** 
         * 获取SD卡的剩余容量 单位byte 
         *  
         * @return 
         */  
        public static long getSDCardAllSize()  
        {  
            if (isSDCardEnable())  
            {  
                StatFs stat = new StatFs(getSDCardPath());  
                // 获取空闲的数据块的数量  
                long availableBlocks = (long) stat.getAvailableBlocks() - 4;  
                // 获取单个数据块的大小(byte)  
                long freeBlocks = stat.getAvailableBlocks();  
                return freeBlocks * availableBlocks;  
            }  
            return 0;  
        }  
    
        /** 
         * 获取指定路径所在空间的剩余可用容量字节数,单位byte 
         *  
         * @param filePath 
         * @return 容量字节 SDCard可用空间,内部存储可用空间 
         */  
        public static long getFreeBytes(String filePath)  
        {  
            // 如果是sd卡的下的路径,则获取sd卡可用容量  
            if (filePath.startsWith(getSDCardPath()))  
            {  
                filePath = getSDCardPath();  
            } else  
            {// 如果是内部存储的路径,则获取内存存储的可用容量  
                filePath = Environment.getDataDirectory().getAbsolutePath();  
            }  
            StatFs stat = new StatFs(filePath);  
            long availableBlocks = (long) stat.getAvailableBlocks() - 4;  
            return stat.getBlockSize() * availableBlocks;  
        }  
    
        /** 
         * 获取系统存储路径 
         *  
         * @return 
         */  
        public static String getRootDirectoryPath()  
        {  
            return Environment.getRootDirectory().getAbsolutePath();  
        }  
    
    }

    5、屏幕相关辅助类 ScreenUtils.java

    public class ScreenUtils  
    {  
        private ScreenUtils()  
        {  
            /* cannot be instantiated */  
            throw new UnsupportedOperationException("cannot be instantiated");  
        }  
    
        /** 
         * 获得屏幕高度 
         *  
         * @param context 
         * @return 
         */  
        public static int getScreenWidth(Context context)  
        {  
            WindowManager wm = (WindowManager) context  
                    .getSystemService(Context.WINDOW_SERVICE);  
            DisplayMetrics outMetrics = new DisplayMetrics();  
            wm.getDefaultDisplay().getMetrics(outMetrics);  
            return outMetrics.widthPixels;  
        }  
    
        /** 
         * 获得屏幕宽度 
         *  
         * @param context 
         * @return 
         */  
        public static int getScreenHeight(Context context)  
        {  
            WindowManager wm = (WindowManager) context  
                    .getSystemService(Context.WINDOW_SERVICE);  
            DisplayMetrics outMetrics = new DisplayMetrics();  
            wm.getDefaultDisplay().getMetrics(outMetrics);  
            return outMetrics.heightPixels;  
        }  
    
        /** 
         * 获得状态栏的高度 
         *  
         * @param context 
         * @return 
         */  
        public static int getStatusHeight(Context context)  
        {  
    
            int statusHeight = -1;  
            try  
            {  
                Class<?> clazz = Class.forName("com.android.internal.R$dimen");  
                Object object = clazz.newInstance();  
                int height = Integer.parseInt(clazz.getField("status_bar_height")  
                        .get(object).toString());  
                statusHeight = context.getResources().getDimensionPixelSize(height);  
            } catch (Exception e)  
            {  
                e.printStackTrace();  
            }  
            return statusHeight;  
        }  
    
        /** 
         * 获取当前屏幕截图,包含状态栏 
         *  
         * @param activity 
         * @return 
         */  
        public static Bitmap snapShotWithStatusBar(Activity activity)  
        {  
            View view = activity.getWindow().getDecorView();  
            view.setDrawingCacheEnabled(true);  
            view.buildDrawingCache();  
            Bitmap bmp = view.getDrawingCache();  
            int width = getScreenWidth(activity);  
            int height = getScreenHeight(activity);  
            Bitmap bp = null;  
            bp = Bitmap.createBitmap(bmp, 0, 0, width, height);  
            view.destroyDrawingCache();  
            return bp;  
    
        }  
    
        /** 
         * 获取当前屏幕截图,不包含状态栏 
         *  
         * @param activity 
         * @return 
         */  
        public static Bitmap snapShotWithoutStatusBar(Activity activity)  
        {  
            View view = activity.getWindow().getDecorView();  
            view.setDrawingCacheEnabled(true);  
            view.buildDrawingCache();  
            Bitmap bmp = view.getDrawingCache();  
            Rect frame = new Rect();  
            activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  
            int statusBarHeight = frame.top;  
    
            int width = getScreenWidth(activity);  
            int height = getScreenHeight(activity);  
            Bitmap bp = null;  
            bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height  
                    - statusBarHeight);  
            view.destroyDrawingCache();  
            return bp;  
    
        }  
    
    }

    6、文件工具类 FileUtils.java

    public class FileUtils {
    
        public final static String FILE_EXTENSION_SEPARATOR = ".";
    
        private FileUtils() {
            throw new AssertionError();
        }
    
        /**
         * read file
         * 
         * @param filePath
         * @param charsetName The name of a supported {@link java.nio.charset.Charset </code>charset<code>}
         * @return if file not exist, return null, else return content of file
         * @throws RuntimeException if an error occurs while operator BufferedReader
         */
        public static StringBuilder readFile(String filePath, String charsetName) {
            File file = new File(filePath);
            StringBuilder fileContent = new StringBuilder("");
            if (file == null || !file.isFile()) {
                return null;
            }
    
            BufferedReader reader = null;
            try {
                InputStreamReader is = new InputStreamReader(new FileInputStream(file), charsetName);
                reader = new BufferedReader(is);
                String line = null;
                while ((line = reader.readLine()) != null) {
                    if (!fileContent.toString().equals("")) {
                        fileContent.append("
    ");
                    }
                    fileContent.append(line);
                }
                return fileContent;
            } catch (IOException e) {
                throw new RuntimeException("IOException occurred. ", e);
            } finally {
                IOUtils.close(reader);
            }
        }
    
        /**
         * write file
         * 
         * @param filePath
         * @param content
         * @param append is append, if true, write to the end of file, else clear content of file and write into it
         * @return return false if content is empty, true otherwise
         * @throws RuntimeException if an error occurs while operator FileWriter
         */
        public static boolean writeFile(String filePath, String content, boolean append) {
            if (StringUtils.isEmpty(content)) {
                return false;
            }
    
            FileWriter fileWriter = null;
            try {
                makeDirs(filePath);
                fileWriter = new FileWriter(filePath, append);
                fileWriter.write(content);
                return true;
            } catch (IOException e) {
                throw new RuntimeException("IOException occurred. ", e);
            } finally {
                IOUtils.close(fileWriter);
            }
        }
    
        /**
         * write file
         * 
         * @param filePath
         * @param contentList
         * @param append is append, if true, write to the end of file, else clear content of file and write into it
         * @return return false if contentList is empty, true otherwise
         * @throws RuntimeException if an error occurs while operator FileWriter
         */
        public static boolean writeFile(String filePath, List<String> contentList, boolean append) {
            if (ListUtils.isEmpty(contentList)) {
                return false;
            }
    
            FileWriter fileWriter = null;
            try {
                makeDirs(filePath);
                fileWriter = new FileWriter(filePath, append);
                int i = 0;
                for (String line : contentList) {
                    if (i++ > 0) {
                        fileWriter.write("
    ");
                    }
                    fileWriter.write(line);
                }
                return true;
            } catch (IOException e) {
                throw new RuntimeException("IOException occurred. ", e);
            } finally {
                IOUtils.close(fileWriter);
            }
        }
    
        /**
         * write file, the string will be written to the begin of the file
         * 
         * @param filePath
         * @param content
         * @return
         */
        public static boolean writeFile(String filePath, String content) {
            return writeFile(filePath, content, false);
        }
    
        /**
         * write file, the string list will be written to the begin of the file
         * 
         * @param filePath
         * @param contentList
         * @return
         */
        public static boolean writeFile(String filePath, List<String> contentList) {
            return writeFile(filePath, contentList, false);
        }
    
        /**
         * write file, the bytes will be written to the begin of the file
         * 
         * @param filePath
         * @param stream
         * @return
         * @see {@link #writeFile(String, InputStream, boolean)}
         */
        public static boolean writeFile(String filePath, InputStream stream) {
            return writeFile(filePath, stream, false);
        }
    
        /**
         * write file
         * 
         * @param file the file to be opened for writing.
         * @param stream the input stream
         * @param append if <code>true</code>, then bytes will be written to the end of the file rather than the beginning
         * @return return true
         * @throws RuntimeException if an error occurs while operator FileOutputStream
         */
        public static boolean writeFile(String filePath, InputStream stream, boolean append) {
            return writeFile(filePath != null ? new File(filePath) : null, stream, append);
        }
    
        /**
         * write file, the bytes will be written to the begin of the file
         * 
         * @param file
         * @param stream
         * @return
         * @see {@link #writeFile(File, InputStream, boolean)}
         */
        public static boolean writeFile(File file, InputStream stream) {
            return writeFile(file, stream, false);
        }
    
        /**
         * write file
         * 
         * @param file the file to be opened for writing.
         * @param stream the input stream
         * @param append if <code>true</code>, then bytes will be written to the end of the file rather than the beginning
         * @return return true
         * @throws RuntimeException if an error occurs while operator FileOutputStream
         */
        public static boolean writeFile(File file, InputStream stream, boolean append) {
            OutputStream o = null;
            try {
                makeDirs(file.getAbsolutePath());
                o = new FileOutputStream(file, append);
                byte data[] = new byte[1024];
                int length = -1;
                while ((length = stream.read(data)) != -1) {
                    o.write(data, 0, length);
                }
                o.flush();
                return true;
            } catch (FileNotFoundException e) {
                throw new RuntimeException("FileNotFoundException occurred. ", e);
            } catch (IOException e) {
                throw new RuntimeException("IOException occurred. ", e);
            } finally {
                IOUtils.close(o);
                IOUtils.close(stream);
            }
        }
    
        /**
         * move file
         * 
         * @param sourceFilePath
         * @param destFilePath
         */
        public static void moveFile(String sourceFilePath, String destFilePath) {
            if (TextUtils.isEmpty(sourceFilePath) || TextUtils.isEmpty(destFilePath)) {
                throw new RuntimeException("Both sourceFilePath and destFilePath cannot be null.");
            }
            moveFile(new File(sourceFilePath), new File(destFilePath));
        }
    
        /**
         * move file
         * 
         * @param srcFile
         * @param destFile
         */
        public static void moveFile(File srcFile, File destFile) {
            boolean rename = srcFile.renameTo(destFile);
            if (!rename) {
                copyFile(srcFile.getAbsolutePath(), destFile.getAbsolutePath());
                deleteFile(srcFile.getAbsolutePath());
            }
        }
    
        /**
         * copy file
         * 
         * @param sourceFilePath
         * @param destFilePath
         * @return
         * @throws RuntimeException if an error occurs while operator FileOutputStream
         */
        public static boolean copyFile(String sourceFilePath, String destFilePath) {
            InputStream inputStream = null;
            try {
                inputStream = new FileInputStream(sourceFilePath);
            } catch (FileNotFoundException e) {
                throw new RuntimeException("FileNotFoundException occurred. ", e);
            }
            return writeFile(destFilePath, inputStream);
        }
    
        /**
         * read file to string list, a element of list is a line
         * 
         * @param filePath
         * @param charsetName The name of a supported {@link java.nio.charset.Charset </code>charset<code>}
         * @return if file not exist, return null, else return content of file
         * @throws RuntimeException if an error occurs while operator BufferedReader
         */
        public static List<String> readFileToList(String filePath, String charsetName) {
            File file = new File(filePath);
            List<String> fileContent = new ArrayList<String>();
            if (file == null || !file.isFile()) {
                return null;
            }
    
            BufferedReader reader = null;
            try {
                InputStreamReader is = new InputStreamReader(new FileInputStream(file), charsetName);
                reader = new BufferedReader(is);
                String line = null;
                while ((line = reader.readLine()) != null) {
                    fileContent.add(line);
                }
                return fileContent;
            } catch (IOException e) {
                throw new RuntimeException("IOException occurred. ", e);
            } finally {
                IOUtils.close(reader);
            }
        }
    
        /**
         * get file name from path, not include suffix
         * 
         * <pre>
         *      getFileNameWithoutExtension(null)               =   null
         *      getFileNameWithoutExtension("")                 =   ""
         *      getFileNameWithoutExtension("   ")              =   "   "
         *      getFileNameWithoutExtension("abc")              =   "abc"
         *      getFileNameWithoutExtension("a.mp3")            =   "a"
         *      getFileNameWithoutExtension("a.b.rmvb")         =   "a.b"
         *      getFileNameWithoutExtension("c:\")              =   ""
         *      getFileNameWithoutExtension("c:\a")             =   "a"
         *      getFileNameWithoutExtension("c:\a.b")           =   "a"
         *      getFileNameWithoutExtension("c:a.txt\a")        =   "a"
         *      getFileNameWithoutExtension("/home/admin")      =   "admin"
         *      getFileNameWithoutExtension("/home/admin/a.txt/b.mp3")  =   "b"
         * </pre>
         * 
         * @param filePath
         * @return file name from path, not include suffix
         * @see
         */
        public static String getFileNameWithoutExtension(String filePath) {
            if (StringUtils.isEmpty(filePath)) {
                return filePath;
            }
    
            int extenPosi = filePath.lastIndexOf(FILE_EXTENSION_SEPARATOR);
            int filePosi = filePath.lastIndexOf(File.separator);
            if (filePosi == -1) {
                return (extenPosi == -1 ? filePath : filePath.substring(0, extenPosi));
            }
            if (extenPosi == -1) {
                return filePath.substring(filePosi + 1);
            }
            return (filePosi < extenPosi ? filePath.substring(filePosi + 1, extenPosi) : filePath.substring(filePosi + 1));
        }
    
        /**
         * get file name from path, include suffix
         * 
         * <pre>
         *      getFileName(null)               =   null
         *      getFileName("")                 =   ""
         *      getFileName("   ")              =   "   "
         *      getFileName("a.mp3")            =   "a.mp3"
         *      getFileName("a.b.rmvb")         =   "a.b.rmvb"
         *      getFileName("abc")              =   "abc"
         *      getFileName("c:\")              =   ""
         *      getFileName("c:\a")             =   "a"
         *      getFileName("c:\a.b")           =   "a.b"
         *      getFileName("c:a.txt\a")        =   "a"
         *      getFileName("/home/admin")      =   "admin"
         *      getFileName("/home/admin/a.txt/b.mp3")  =   "b.mp3"
         * </pre>
         * 
         * @param filePath
         * @return file name from path, include suffix
         */
        public static String getFileName(String filePath) {
            if (StringUtils.isEmpty(filePath)) {
                return filePath;
            }
    
            int filePosi = filePath.lastIndexOf(File.separator);
            return (filePosi == -1) ? filePath : filePath.substring(filePosi + 1);
        }
    
        /**
         * get folder name from path
         * 
         * <pre>
         *      getFolderName(null)               =   null
         *      getFolderName("")                 =   ""
         *      getFolderName("   ")              =   ""
         *      getFolderName("a.mp3")            =   ""
         *      getFolderName("a.b.rmvb")         =   ""
         *      getFolderName("abc")              =   ""
         *      getFolderName("c:\")              =   "c:"
         *      getFolderName("c:\a")             =   "c:"
         *      getFolderName("c:\a.b")           =   "c:"
         *      getFolderName("c:a.txt\a")        =   "c:a.txt"
         *      getFolderName("c:a\b\c\d.txt")    =   "c:a\b\c"
         *      getFolderName("/home/admin")      =   "/home"
         *      getFolderName("/home/admin/a.txt/b.mp3")  =   "/home/admin/a.txt"
         * </pre>
         * 
         * @param filePath
         * @return
         */
        public static String getFolderName(String filePath) {
    
            if (StringUtils.isEmpty(filePath)) {
                return filePath;
            }
    
            int filePosi = filePath.lastIndexOf(File.separator);
            return (filePosi == -1) ? "" : filePath.substring(0, filePosi);
        }
    
        /**
         * get suffix of file from path
         * 
         * <pre>
         *      getFileExtension(null)               =   ""
         *      getFileExtension("")                 =   ""
         *      getFileExtension("   ")              =   "   "
         *      getFileExtension("a.mp3")            =   "mp3"
         *      getFileExtension("a.b.rmvb")         =   "rmvb"
         *      getFileExtension("abc")              =   ""
         *      getFileExtension("c:\")              =   ""
         *      getFileExtension("c:\a")             =   ""
         *      getFileExtension("c:\a.b")           =   "b"
         *      getFileExtension("c:a.txt\a")        =   ""
         *      getFileExtension("/home/admin")      =   ""
         *      getFileExtension("/home/admin/a.txt/b")  =   ""
         *      getFileExtension("/home/admin/a.txt/b.mp3")  =   "mp3"
         * </pre>
         * 
         * @param filePath
         * @return
         */
        public static String getFileExtension(String filePath) {
            if (StringUtils.isBlank(filePath)) {
                return filePath;
            }
    
            int extenPosi = filePath.lastIndexOf(FILE_EXTENSION_SEPARATOR);
            int filePosi = filePath.lastIndexOf(File.separator);
            if (extenPosi == -1) {
                return "";
            }
            return (filePosi >= extenPosi) ? "" : filePath.substring(extenPosi + 1);
        }
    
        /**
         * Creates the directory named by the trailing filename of this file, including the complete directory path required
         * to create this directory. <br/>
         * <br/>
         * <ul>
         * <strong>Attentions:</strong>
         * <li>makeDirs("C:\Users\Trinea") can only create users folder</li>
         * <li>makeFolder("C:\Users\Trinea\") can create Trinea folder</li>
         * </ul>
         * 
         * @param filePath
         * @return true if the necessary directories have been created or the target directory already exists, false one of
         *         the directories can not be created.
         *         <ul>
         *         <li>if {@link FileUtils#getFolderName(String)} return null, return false</li>
         *         <li>if target directory already exists, return true</li>
         *         <li>return {@link java.io.File#makeFolder}</li>
         *         </ul>
         */
        public static boolean makeDirs(String filePath) {
            String folderName = getFolderName(filePath);
            if (StringUtils.isEmpty(folderName)) {
                return false;
            }
    
            File folder = new File(folderName);
            return (folder.exists() && folder.isDirectory()) ? true : folder.mkdirs();
        }
    
        /**
         * @param filePath
         * @return
         * @see #makeDirs(String)
         */
        public static boolean makeFolders(String filePath) {
            return makeDirs(filePath);
        }
    
        /**
         * Indicates if this file represents a file on the underlying file system.
         * 
         * @param filePath
         * @return
         */
        public static boolean isFileExist(String filePath) {
            if (StringUtils.isBlank(filePath)) {
                return false;
            }
    
            File file = new File(filePath);
            return (file.exists() && file.isFile());
        }
    
        /**
         * Indicates if this file represents a directory on the underlying file system.
         * 
         * @param directoryPath
         * @return
         */
        public static boolean isFolderExist(String directoryPath) {
            if (StringUtils.isBlank(directoryPath)) {
                return false;
            }
    
            File dire = new File(directoryPath);
            return (dire.exists() && dire.isDirectory());
        }
    
        /**
         * delete file or directory
         * <ul>
         * <li>if path is null or empty, return true</li>
         * <li>if path not exist, return true</li>
         * <li>if path exist, delete recursion. return true</li>
         * <ul>
         * 
         * @param path
         * @return
         */
        public static boolean deleteFile(String path) {
            if (StringUtils.isBlank(path)) {
                return true;
            }
    
            File file = new File(path);
            if (!file.exists()) {
                return true;
            }
            if (file.isFile()) {
                return file.delete();
            }
            if (!file.isDirectory()) {
                return false;
            }
            for (File f : file.listFiles()) {
                if (f.isFile()) {
                    f.delete();
                } else if (f.isDirectory()) {
                    deleteFile(f.getAbsolutePath());
                }
            }
            return file.delete();
        }
    
        /**
         * get file size
         * <ul>
         * <li>if path is null or empty, return -1</li>
         * <li>if path exist and it is a file, return file size, else return -1</li>
         * <ul>
         * 
         * @param path
         * @return returns the length of this file in bytes. returns -1 if the file does not exist.
         */
        public static long getFileSize(String path) {
            if (StringUtils.isBlank(path)) {
                return -1;
            }
    
            File file = new File(path);
            return (file.exists() && file.isFile() ? file.length() : -1);
        }
    }

    7、assets和raw资源工具类 ResourceUtils.java

    public class ResourceUtils {
    
        private ResourceUtils() {
            throw new AssertionError();
        }
    
        /**
         * get an asset using ACCESS_STREAMING mode. This provides access to files that have been bundled with an
         * application as assets -- that is, files placed in to the "assets" directory.
         * 
         * @param context
         * @param fileName The name of the asset to open. This name can be hierarchical.
         * @return
         */
        public static String geFileFromAssets(Context context, String fileName) {
            if (context == null || StringUtils.isEmpty(fileName)) {
                return null;
            }
    
            StringBuilder s = new StringBuilder("");
            try {
                InputStreamReader in = new InputStreamReader(context.getResources().getAssets().open(fileName));
                BufferedReader br = new BufferedReader(in);
                String line;
                while ((line = br.readLine()) != null) {
                    s.append(line);
                }
                return s.toString();
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
        }
    
        /**
         * get content from a raw resource. This can only be used with resources whose value is the name of an asset files
         * -- that is, it can be used to open drawable, sound, and raw resources; it will fail on string and color
         * resources.
         * 
         * @param context
         * @param resId The resource identifier to open, as generated by the appt tool.
         * @return
         */
        public static String geFileFromRaw(Context context, int resId) {
            if (context == null) {
                return null;
            }
    
            StringBuilder s = new StringBuilder();
            try {
                InputStreamReader in = new InputStreamReader(context.getResources().openRawResource(resId));
                BufferedReader br = new BufferedReader(in);
                String line;
                while ((line = br.readLine()) != null) {
                    s.append(line);
                }
                return s.toString();
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
        }
    
        /**
         * same to {@link ResourceUtils#geFileFromAssets(Context, String)}, but return type is List<String>
         * 
         * @param context
         * @param fileName
         * @return
         */
        public static List<String> geFileToListFromAssets(Context context, String fileName) {
            if (context == null || StringUtils.isEmpty(fileName)) {
                return null;
            }
    
            List<String> fileContent = new ArrayList<String>();
            try {
                InputStreamReader in = new InputStreamReader(context.getResources().getAssets().open(fileName));
                BufferedReader br = new BufferedReader(in);
                String line;
                while ((line = br.readLine()) != null) {
                    fileContent.add(line);
                }
                br.close();
                return fileContent;
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
        }
    
        /**
         * same to {@link ResourceUtils#geFileFromRaw(Context, int)}, but return type is List<String>
         * 
         * @param context
         * @param resId
         * @return
         */
        public static List<String> geFileToListFromRaw(Context context, int resId) {
            if (context == null) {
                return null;
            }
    
            List<String> fileContent = new ArrayList<String>();
            BufferedReader reader = null;
            try {
                InputStreamReader in = new InputStreamReader(context.getResources().openRawResource(resId));
                reader = new BufferedReader(in);
                String line = null;
                while ((line = reader.readLine()) != null) {
                    fileContent.add(line);
                }
                reader.close();
                return fileContent;
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
        }
    }

    8、单例工具类 SingletonUtils.java

    public abstract class SingletonUtils<T> {
    
        private T instance;
    
        protected abstract T newInstance();
    
        public final T getInstance() {
            if (instance == null) {
                synchronized (SingletonUtils.class) {
                    if (instance == null) {
                        instance = newInstance();
                    }
                }
            }
            return instance;
        }
    }
  • 相关阅读:
    redis应用场景
    redis 持久化
    vue.jsv-if 的key值问题
    laravel 上线注意事项 (ubuntu lamp)
    laravel 不同表用户登录,后台跳转问题
    Laravel 5.5 不同用户表登录认证(前后台分离)
    记录laravel 数据填充问题
    Git 版本控制器详解
    Ubuntu Apache多站点配置
    Spring的注解@Qualifier小结
  • 原文地址:https://www.cnblogs.com/zhaoyanjun/p/5131313.html
Copyright © 2011-2022 走看看