anroid&java工具类

来源:互联网 发布:奥迪矩阵式led大灯价格 编辑:程序博客网 时间:2024/05/01 19:56

      越来越发现,整理一些常用的工具接口,对于编程开发人员来说越来越重要,以本文为契机,开始对常用的工具接口进行整理,不断update,起到事半功倍的作用。

     

public class Tools {private final static int DEFAULT_BUFFER_SIZE = 1024;/** * 将文件大小由字节转化为M *  * @param size * @return */public static String sizeToM(long size) {if (size / 1024 / 1024 >= 1) {return size / 1024 / 1024 + (size / 1024 % 1024 / 1024.0 + "").substring(1, 3) + "MB";} else {return size / 1024 + (size % 1024 / 1024.0 + "").substring(1, 3) + "KB";}}/** * 将字符串写入指定文件(当指定的父路径中文件夹不存在时,会最大限度去创建,以保证保存成功!) *  * @param res *            原字符串 * @param filePath *            文件路径 * @return 成功标记 */public static boolean string2File(String res, String filePath) {boolean flag = true;BufferedReader bufferedReader = null;BufferedWriter bufferedWriter = null;try {File distFile = new File(filePath);if (!distFile.getParentFile().exists())distFile.getParentFile().mkdirs();bufferedReader = new BufferedReader(new StringReader(res));bufferedWriter = new BufferedWriter(new FileWriter(distFile));char buf[] = new char[1024]; // 字符缓冲区int len;while ((len = bufferedReader.read(buf)) != -1) {bufferedWriter.write(buf, 0, len);}bufferedWriter.flush();bufferedReader.close();bufferedWriter.close();} catch (IOException e) {e.printStackTrace();flag = false;return flag;} finally {if (bufferedReader != null) {try {bufferedReader.close();} catch (IOException e) {e.printStackTrace();}}}return flag;}/** * 文本文件转换为指定编码的字符串 *  * @param file *            文本文件 * @param encoding *            编码类型 * @return 转换后的字符串 * @throws IOException */public static String file2String(File file, String encoding) {InputStreamReader reader = null;StringWriter writer = new StringWriter();try {if (encoding == null || "".equals(encoding.trim())) {reader = new InputStreamReader(new FileInputStream(file), encoding);} else {reader = new InputStreamReader(new FileInputStream(file));}// 将输入流写入输出流char[] buffer = new char[DEFAULT_BUFFER_SIZE];int n = 0;while (-1 != (n = reader.read(buffer))) {writer.write(buffer, 0, n);}} catch (Exception e) {e.printStackTrace();return null;} finally {if (reader != null)try {reader.close();} catch (IOException e) {e.printStackTrace();}}// 返回转换结果if (writer != null)return writer.toString();elsereturn null;}/** * 获取当前系统的版本 *  * @return */public static String currentSystemVersion() {return Build.VERSION.RELEASE;}/* * IP正则表达式的判断 */public static boolean matchIP(String ip) {// ip正则表达式String regex = "([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}";Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(ip);return matcher.matches();}/** * 解析IP地址 *  * @param ip */public static String[] resolutionIP(String ip) {return ip.split("\\.");}/** * 把字节数组转换成Bitmap *  * @param b * @return */public static Bitmap byte2Bitmap(byte[] b) {if (b.length != 0) {return BitmapFactory.decodeByteArray(b, 0, b.length);} else {return null;}}/** * 把Bitmap转换成字节数组 *  * @param bm * @return */public static byte[] bitmap2Bytes(Bitmap bm) {ByteArrayOutputStream baos = new ByteArrayOutputStream();bm.compress(Bitmap.CompressFormat.PNG, 100, baos);return baos.toByteArray();}/** * 获取当前可用内存大小 *  * @return */public static String getAvailMemory(Context context) {ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);MemoryInfo mi = new MemoryInfo();am.getMemoryInfo(mi);System.out.println("mi.availMem;" + mi.availMem);return Formatter.formatFileSize(context, mi.availMem);// 将获取的内存大小规格化}/** * 获取总的内存大小 *  * @return */public static String getTotalMemory(Context context) {String str1 = "/proc/meminfo";// 系统内存信息文件String str2;String[] arrayOfString;long initial_memory = 0;try {FileReader localFileReader = new FileReader(str1);BufferedReader localBufferedReader = new BufferedReader(localFileReader, 8192);str2 = localBufferedReader.readLine();// 读取meminfo第一行,系统总内存大小arrayOfString = str2.split("\\s+");for (String num : arrayOfString) {Log.i(str2, num + "\t");}initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 获得系统总内存,单位是KB,乘以1024转换为BytelocalBufferedReader.close();} catch (IOException e) {}return Formatter.formatFileSize(context, initial_memory);// Byte转换为KB或者MB,内存大小规格化}}