• Java和Android中一些常用的公共方法


     

    /**
      * 通过findStr在getStr的位置,查找相应位置上setStr的值
      *
      * @param getStr
      *            所在位置
      * @param setStr
      *            查找位置
      * @param findStr
      *            查找条件
      * @return 查找相应的值
      */
     public static String findStr(CharSequence[] getStr, CharSequence[] setStr, String findStr) {
      int len = getStr.length;
      String str = null;
      for (int i = 0; i < len; i++) {
       if (getStr[i].equals(findStr)) {
        str = setStr[i].toString();
       }
      }
      return str;
     }

     /**
      * 获取指定字符串在数组位置
      *
      * @param charSeq
      * @param str
      * @return
      */
     public static int getIndex(CharSequence[] charSeq, String str) {
      int index = 0;
      for (int i = 0; i < charSeq.length; i++) {
       if (charSeq[i].toString().equals(str)) {
        index = i;
        break;
       }
      }
      return index;
     }

     /**
      * 时间格式化
      *
      * @param time
      *            秒数
      * @return
      */
     public static String timeFormat(int time) {
      String retString = "";

      int hour = (time / 3600);
      int minute = ((time - hour * 3600) / 60);
      int second = (time - hour * 3600 - minute * 60);

      if (hour != 0) {
       retString += String.valueOf(hour) + "小时";
      }
      if (minute != 0) {
       retString += String.valueOf(minute) + "分钟";
      }
      if (second != 0) {
       retString += String.valueOf(second) + "秒";
      }

      return retString;
     }

     /**
      * 改变图片尺寸
      *
      * @param makeWidth
      * @param makeHeight
      * @param makeBit
      * @return
      */
     public static Bitmap makeImg(int makeWidth, int makeHeight, Bitmap makeBit) {
      if (makeBit != null) {
       float scaleWidth = ((float) makeWidth) / makeBit.getWidth();
       float scaleHeight = ((float) makeHeight) / makeBit.getHeight();
       Matrix matrix = new Matrix();
       matrix.postScale(scaleWidth, scaleHeight);
       Bitmap resizedBitmap = Bitmap.createBitmap(makeBit, 0, 0, makeBit.getWidth(), makeBit.getHeight(), matrix, true);
       return resizedBitmap;
      } else {
       return null;
      }
     }


     
     /**
      * 改变图片尺寸
      */
     public static String createMacStr(String mac) {
      return mac.replaceAll(":", "_");
     }

     /**
      * 图片阴影渐变效果
      *
      * @param originalImage
      * @return
      */
     public static Bitmap createReflectedImage(Bitmap originalImage) {
      final int reflectionGap = 0;
      int width = originalImage.getWidth();
      int height = originalImage.getHeight();

      /** 倒影旋转的角度 **/
      Matrix matrix = new Matrix();
      matrix.preScale(1, -1);

      /** 创建倒影图片 **/
      Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0, height / 2, width, height / 2, matrix, false);

      /** 设置新建的画布样式 **/
      Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height / 6), Config.ARGB_8888);

      /** 创建画布 **/
      Canvas canvas = new Canvas(bitmapWithReflection);
      canvas.drawBitmap(originalImage, 0, 0, null);
      Paint defaultPaint = new Paint();
      canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);

      canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);

      Paint paint = new Paint();
      /** 画出倒影 **/
      LinearGradient shader = new LinearGradient(0, originalImage.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, TileMode.MIRROR);
      paint.setShader(shader);
      /** 设置渐变 **/
      paint.setXfermode(new PorterDuffXfermode(Mode.DST_ATOP));

      canvas.drawRect(0, height, width, bitmapWithReflection.getHeight() + reflectionGap, paint);

      /** 将画在画布上的图返回 **/
      return bitmapWithReflection;
     }

    /**
      * 获取时间戳(字数串格式化yyyyMMddHHmmsssss)
      */
     public static String getTimestampStr() {
      SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyyMMddHHmmsssss");
      Date date = new Date();
      return bartDateFormat.format(date);
     }
     

     /**
      * 获取当前日期(字数串格式化yyyy-MM-dd)
      */
     public static String getNowDateStr() {
      SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyy-MM-dd");
      Date date = new Date();
      return bartDateFormat.format(date);
     }

    /**
      * 获取本地Jar包图片
      *
      * @return Bitmap类型
      */
     public static Bitmap getLocalBitmap(URL localPath) {
      Bitmap bitmap = null;
      try {
       URLConnection uConnection = localPath.openConnection();
       uConnection.setDoInput(true);
       uConnection.connect();
       InputStream inStream = uConnection.getInputStream();
       bitmap = BitmapFactory.decodeStream(inStream);
       inStream.close();
      } catch (IOException e) {
       e.printStackTrace();
      }
      return bitmap;
     }

     /**
      * 获取文本内容
      *
      * @param filePath
      * @return
      */
     public static String getTextFile(String filePath) {
      String result = null;
      try {
       File file = new File(filePath);
       BufferedReader bufRead = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
       while ((result = bufRead.readLine()) != null) {
        return result;
       }
      } catch (Exception e) {
       e.printStackTrace();
      }
      return result;
     }

     /**
      * 获得文件扩展名
      *
      * @param fileName
      * @return
      */
     public static String getFileExtention(String fileName) {
      int length = fileName.length();
      for (int i = length - 1; i >= 0; i--) {
       if (fileName.charAt(i) == '.') {
        return fileName.substring(i);
       }
      }
      return fileName;
     }

     /**
      * 截取","字符
      *
      * @param str
      * @return
      */
     public static List<String> getName(String str) {
      List<String> list = new ArrayList<String>();
      String[] cutArray = str.split(",");
      int length = cutArray.length;
      for (int i = 0; i < length; i++) {
       list.add(cutArray[i]);
      }
      return list;
     }

     /**
      * 读取本地内存图片
      *
      * @param getFileBitmap 本地图片路径
      * @param fileName 本地图片名称
      * @return
      */
     public static Bitmap getFileBitmap(String filePath, String fileName) {
      Bitmap bmp = BitmapFactory.decodeFile(filePath + fileName);
      return bmp;
     }

     /**
      * 删除文件夹
      *
      * @param folder
      * @return
      */
     public static boolean deleteFolder(File folder) {
      boolean result = false;
      try {
       String childs[] = folder.list();
       if (childs == null || childs.length <= 0) {
        if (folder.delete()) {
         result = true;
        }
       } else {
        for (int i = 0; i < childs.length; i++) {
         String childName = childs[i];
         String childPath = folder.getPath() + File.separator + childName;
         File filePath = new File(childPath);
         if (filePath.exists() && filePath.isFile()) {
          if (filePath.delete()) {
           result = true;
          } else {
           result = false;
           break;
          }
         } else if (filePath.exists() && filePath.isDirectory()) {
          if (deleteFolder(filePath)) {
           result = true;
          } else {
           result = false;
           break;
          }
         }
        }
        folder.delete();
       }
      } catch (Exception e) {
       result = false;
      }
      return result;
     }

     /**
      * 复制文件
      *
      * @param sourceFile 源文件
      * @param targetFile 目标文件
      * @throws IOException
      */
     public static void copyFile(File sourceFile, File targetFile) throws IOException {

      /** 新建文件输入流并对它进行缓冲 **/
      FileInputStream input = new FileInputStream(sourceFile);
      BufferedInputStream inBuff = new BufferedInputStream(input);

      /** 新建文件输出流并对它进行缓冲 **/
      FileOutputStream output = new FileOutputStream(targetFile);
      BufferedOutputStream outBuff = new BufferedOutputStream(output);

      byte[] b = new byte[1024 * 5];
      int len;
      while ((len = inBuff.read(b)) != -1) {
       outBuff.write(b, 0, len);
      }
      /** 刷新此缓冲的输出流 **/
      outBuff.flush();

      inBuff.close();
      outBuff.close();
      output.close();
      input.close();
     }

     /**
      * 复制文件夹
      *
      * @param sourceDir 源文件夹
      * @param targetDir 目标文件夹
      * @throws IOException
      */
     public static void copyDirectiory(String sourceDir, String targetDir) throws IOException {
      (new File(targetDir)).mkdirs();
      File[] file = (new File(sourceDir)).listFiles();
      for (int i = 0; i < file.length; i++) {
       if (file[i].isFile()) {
        /** 源文件 **/
        File sourceFile = file[i];
        /** 目标文件 **/
        File targetFile = new File(new File(targetDir).getAbsolutePath() + File.separator + file[i].getName());
        copyFile(sourceFile, targetFile);
       }
       if (file[i].isDirectory()) {
        /** 源文件夹 **/
        String dir1 = sourceDir + "/" + file[i].getName();
        /** 源文件夹 **/
        String dir2 = targetDir + "/" + file[i].getName();
        copyDirectiory(dir1, dir2);
       }
      }
     }

     /**
      * 删除文件夹下的指定文件
      *
      * @param folder 所在文件夹
      * @param str 指定模糊的字符串
      * @return
      */
     public static boolean deleteAssignFolder(File folder, String str) {
      boolean result = false;
      try {
       String childs[] = folder.list();
       if (childs == null || childs.length <= 0) {
        result = false;
       } else {
        for (int i = 0; i < childs.length; i++) {
         String childName = childs[i];
         String subStr = childName.substring(0, childName.indexOf("_"));
         if (str.equals(subStr)) {
          String childPath = folder.getPath() + File.separator + childName;
          File filePath = new File(childPath);
          if (filePath.exists() && filePath.isFile()) {
           if (filePath.delete()) {
            result = true;
           } else {
            result = false;
            break;
           }
          } else if (filePath.exists() && filePath.isDirectory()) {
           if (deleteAssignFolder(filePath, str)) {
            result = true;
           } else {
            result = false;
            break;
           }
          }
         }
        }
       }
      } catch (Exception e) {
       result = false;
      }
      return result;
     }

     /**
      * 创建文件同时初始化文件内容
      *
      * @param filename
      * @param filecontent
      * @return
      */
     public static boolean createFileContent(String filename, String filecontent) {
      try {
       File f = new File(filename);
       if (f.exists() && f.isFile())
        f.delete();
       FileOutputStream fos = new FileOutputStream(f, true);
       fos.write(filecontent.getBytes());
       fos.close();
       return true;
      } catch (Exception ex) {
       ex.printStackTrace();
       return false;
      }
     }

     /**
      * 创建文件同时初始化文件内容
      */
     public static String createDirectory(String filepath) {
      File f = new File(filepath);
      if (!f.exists())
       f.mkdirs();
      return filepath;
     }

     /**
      * 截取扩展名'.'之前的文件名
      *
      * @param fileName
      * @return
      */
     public static String getFileName(String fileName) {
      if ((fileName != null) && (fileName.length() > 0)) {
       int i = fileName.lastIndexOf('.');
       if ((i > -1) && (i < (fileName.length()))) {
        return fileName.substring(0, i);
       }
      }
      return fileName;

     }

    对MD5加密的操作:

    //十六进制下数字到字符的映射数组
     private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
       "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

     /** 把inputString加密 */
     public static String createPassword(String inputString) {
      return encodeByMD5(inputString);
     }

     /**
      *
      * Creation  Date:2008-3-14
      * 验证输入的密码是否正确
      * @param password 加密后的源密码
      * @param inputString 输入字符串
      * @return boolean true为真,false为假
      * @Author tianw
      */
     public static boolean authenticatePassword(String password,
       String inputString) {
      if (password.equals(encodeByMD5(inputString))) {
       return true;
      } else {
       return false;
      }
     }

     
     /** 对字符串进行MD5加密 */
     private static String encodeByMD5(String originString) {
      if (originString != null) {
       try {
        // 创建具有指定算法名称的信息摘要
        MessageDigest md = MessageDigest.getInstance("MD5");
        // 使用指定的字节数组对摘要进行最后更新,然后完成摘要计算
        byte[] results = md.digest(originString.getBytes());
        // 将得到的字节数组变成字符串返回
        String resultString = byteArrayToHexString(results);
        return resultString.toUpperCase();
       } catch (Exception ex) {
        ex.printStackTrace();
       }
      }
      return null;
     }
     
     /**
      *
      * Creation  Date:2008-3-14
      * 转换字节数组为十六进制字符串
      * @param b  字节数组
      * @return String 十六进制字符串
      * @Author tianw
      */
     private static String byteArrayToHexString(byte[] b) {
      StringBuffer resultSb = new StringBuffer();
      for (int i = 0; i < b.length; i++) {
       
       String ss = byteToHexString(b[i]);   
       resultSb.append(ss);
      }
      
      return resultSb.toString();
     }

     
     /** 将一个字节转化成十六进制形式的字符串 */
     private static String byteToHexString(byte b) {
      int n = b;
      if (n < 0)
       n = 256 + n;
      int d1 = n / 16;
      int d2 = n % 16;
      return hexDigits[d1] + hexDigits[d2];
     }

    /**
      * Post提交
      *
      * @param linkAddress 请求地址
      * @param map Key:参数,Value:内容
      * @param timeOut 超时时间
      * @return
      */
     public static String requestPost(String linkAddress, Map<String, String> map, int timeOut) {
      String result = null;
      HttpParams httpParams = new BasicHttpParams();
      HttpConnectionParams.setConnectionTimeout(httpParams, timeOut * 1000);
      HttpConnectionParams.setSoTimeout(httpParams, 60 * 1000);
      HttpConnectionParams.setSocketBufferSize(httpParams, 8192);
      HttpClient httpClient = new DefaultHttpClient(httpParams);
      httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
      try {
       HttpPost httpost = new HttpPost(linkAddress);
       if (map != null) {
        List<BasicNameValuePair> postData = new ArrayList<BasicNameValuePair>();
        for (Map.Entry<String, String> entry : map.entrySet()) {
         postData.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
        }
        httpost.setEntity(new UrlEncodedFormEntity(postData, HTTP.UTF_8));
       }
       HttpResponse response = httpClient.execute(httpost); // 执行

       String httpStatus = response.getStatusLine().toString();
       if (httpStatus.indexOf("4") > 0 || httpStatus.indexOf("5") > 0) {
        result = "error"; // 如果响应码为4开头,则代表访问不成功
       }

       HttpEntity httpEntity = response.getEntity();
       if (httpEntity != null) {
        String backStream = EntityUtils.toString(httpEntity); // 回写内容
        result = backStream.toString();
        httpEntity.consumeContent();
       }
      } catch (SocketTimeoutException e) {
       result = "SoError";
      } catch (IOException e) {
       result = "IOError";
      } catch (Exception e) {
       result = "error";
      } finally {
       httpClient.getConnectionManager().shutdown();
      }

      return result;
     }

     /**
      * 生成JSONArray
      *
      * @param map Key:参数,Value:内容
      * @return
      */
     public static String createJSONArray(Map<String, String> map) {
      String result = null;
      try {
       JSONArray jsonArray = new JSONArray();
       JSONObject jsonObject = new JSONObject();
       for (Map.Entry<String, String> entry : map.entrySet()) {
        jsonObject.put(entry.getKey(), entry.getValue());
       }
       jsonArray.put(jsonObject);
       result = jsonArray.toString();
      } catch (Exception e) {

      }
      return result;
     }

     /**
      * 下载文件并保存
      *
      * @param fileUrl 下载文件地址
      * @param filePath 保存文件位置
      * @param fileName 保存文件名称
      * @return
      */
     public static boolean saveDownFile(String fileUrl, String filePath, String fileName) {
      try {
       URL url = new URL(fileUrl);
       File dirFile = new File(filePath);
       if (!dirFile.exists()) {
        dirFile.mkdirs();
       }
       URLConnection ucon = url.openConnection();
       InputStream is = ucon.getInputStream();
       FileOutputStream fos = new FileOutputStream(new File(filePath + fileName));
       byte[] buffer = new byte[256];
       int current = 0;
       while ((current = is.read(buffer, 0, 256)) != -1) {
        fos.write(buffer, 0, current);
       }
       fos.close();
       return true;
      } catch (IOException e) {
       e.printStackTrace();
       return false;
      }
     }

    注明:QQ技术交流群:108614806   感兴趣的加一下。

  • 相关阅读:
    表单提交时,更新的操作
    提交后刷新本页面与移除本页面的JS写法
    jquery的$.each如何退出循环和退出本次循环
    修改本机host文件,使upf报表操作变的快
    代码记录
    JQuery简介
    Ubuntu安装
    PHP笔记(PHP高级篇)
    将Session写入Memcache
    将Session写入数据库
  • 原文地址:https://www.cnblogs.com/zhiqiangsimida/p/2774679.html
Copyright © 2020-2023  润新知