平时常用的一些java方法,请留意。

package com.util;

import java.io.BufferedInputStream;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SuperUitl {
 
 public static void main(String[] args) {
  System.out.println();
 }
 
 /**
  * 全角转半角
  * trr 要转换成半角的字符串
  */
 public static String change(String str) {
  String outStr="";
  String test="";
  byte[] code = null;
  
  for(int i=0;i<str.length();i++) {     
   try {
    test = str.substring(i,i+1);
    code = test.getBytes("unicode");
   } catch(java.io.UnsupportedEncodingException e) {
   }     
   if (code[3] == -1) {
    code[2] = (byte)(code[2]+32);
    code[3] = 0;     

    try {       
     outStr = outStr + new String(code,"unicode");
    } catch(java.io.UnsupportedEncodingException e) {
    }      
   } else {
    outStr = outStr + test;
   }
  }
  return outStr; 
 }
 
 /**
  * 根据key读取value
  * filePath 要操作的properties文件路径
  * key 要获得数据的key
  */
 public static String readValue(String filePath,String key) {
  Properties props = new Properties();
        try {
         InputStream in = new BufferedInputStream (new FileInputStream(filePath));
         props.load(in);
         String value = props.getProperty (key);
            return value;
        } catch (Exception e) {
         return null;
        }
 }
 
 /**
  * 读取properties的全部信息
  * filePath 要操作的properties文件路径
  */
    public static Map readProperties(String filePath) {
     Map map = new HashMap();
     Properties props = new Properties();
        try {
         InputStream in = new BufferedInputStream (new FileInputStream(filePath));
         props.load(in);
            Enumeration en = props.propertyNames();
             while (en.hasMoreElements()) {
              String key = (String) en.nextElement();
                    String Property = props.getProperty (key);
                    map.put(key,Property);
                }
             return map;
        } catch (Exception e) {
         return null;
        }
    }

    /**
  * 写入properties信息
  * filePath 要操作的properties文件路径
  * key 要写入的key
  * value 要写入的value
  */
    public static boolean writeProperties(String filePath,String key,String value) {
     Properties prop = new Properties();
     try {
      InputStream fis = new FileInputStream(filePath);
            //从输入流中读取属性列表(键和元素对)
            prop.load(fis);
            //调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。
            //强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
            OutputStream fos = new FileOutputStream(filePath);
            prop.setProperty(key,value);
            //以适合使用 load 方法加载到 Properties 表中的格式,
            //将此 Properties 表中的属性列表(键和元素对)写入输出流
            prop.store(fos, "Update '" + key + "' value");
            return true;
        } catch (IOException e) {
         return false;
        }
    }
    
    /**
  * 返回标准系统时间
  */
    public static String getDate() {
  SimpleDateFormat ft=null;
  Date date=null;
  Calendar cl= Calendar.getInstance();
  cl.setTime(new java.util.Date());
  date=cl.getTime();
  ft=new SimpleDateFormat("yyyy-MM-dd HH:mm");
  String dateTime = ft.format(date);
  return dateTime;
 }
    
 /**
  * 从指定的字符串中提取Email
  * content 指定的字符串
  */
 public static String parse(String content) {
  String email = null;
  if (content==null || content.length()<1) {
   return email;
  }
  //找出含有@
  int beginPos;
  int i;
  String token = "@";
  String preHalf="";
  String sufHalf = "";
  
  beginPos = content.indexOf(token);
  if (beginPos>-1) {
   //前项扫描
   String s = null;
   i= beginPos;
   while(i>0) {
    s = content.substring(i-1,i);
    if (isLetter(s))
     preHalf = s+preHalf;
    else
     break;
    i--;
   }
   //后项扫描
   i= beginPos+1;
   while( i<content.length()) {
    s = content.substring(i,i+1);
    if (isLetter(s))
     sufHalf =  sufHalf +s;
    else
     break;
    i++;  
   }
   //判断合法性
   email = preHalf + "@" + sufHalf;
   if (isEmail(email)) {
    return email;
   }
  }
  return null;
 }
 
 /**
  * 判断是不是合法Email
  * email Email地址
  */
 public static boolean isEmail(String email) {
  try {
   if (email==null || email.length()<1 || email.length()>256) {
    return false;
   }
   
   String check = "^([0-9a-zA-Z]+[_.0-9a-zA-Z-]+)@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2,3})$";
   Pattern regex = Pattern.compile(check);
   Matcher matcher = regex.matcher(email);
   boolean isMatched = matcher.matches();
   if(isMatched) {
    return true;
   } else {
    return false;
   }
  } catch (RuntimeException e) {
   return false;
  } 
 }
 
 /**
  * 判断是不是合法字符
  * c 要判断的字符
  */
 public static boolean isLetter(String c) {
  boolean result = false;
  
  if (c==null || c.length()<0) {
   return false;
  }
  //a-z 
  if (c.compareToIgnoreCase("a")>=0 && c.compareToIgnoreCase("z")<=0) {
   return true;
  }
  //0-9
  if (c.compareToIgnoreCase("0")>=0 && c.compareToIgnoreCase("9")<=0) {
   return true;
  }
  //. - _
  if (c.equals(".") || c.equals("-") || c.equals("_") ) {
   return true;
  }
  return result; 
 }
 
 /**
  * 删除整个目录的全部图片
  * filePath 要删除的目录路径
  */
 public static boolean deleteImage(String filePath) {
  try {
   File file = new File(filePath);
   File[] files = file.listFiles();
   for(int i=0;i<files.length;i++) {
    try {
     //系统文件不删除
     if(!(files[i].getName()).equalsIgnoreCase("Thumbs.db")) {
      if(files[i].isFile()) {
       files[i].delete();
      } else if(files[i].isDirectory()) {
       files[i].delete();
      } else {
       files[i].delete();
      }
     }
    } catch (RuntimeException e) {;
    }
   }
   return true;
  } catch (RuntimeException e) {
   return false;
  } 
 }
 
 /**
  * 保存网络上的图片到指定目录
  * filePath 要保存到本地服务器的目录
  * imagePath 网络图片的UIL地址
  */
 public static boolean saveImage(String filePath,String imagePath) {
  try {
   if(imagePath.length()>1024 || imagePath.equals("")) {
    return false;
   }
   String fileName = imagePath.substring(imagePath.lastIndexOf("/")+1,imagePath.length());
   filePath = filePath+fileName;
   URL url = null;
   try {
     url = new URL(imagePath);
   } catch(Exception e) {
     return false;
   }
   FilterInputStream in=(FilterInputStream) url.openStream();
   File fileOut=new File(filePath);
   FileOutputStream out=new FileOutputStream(fileOut);
   byte[] bytes=new byte[1024];
   int c;
   while((c=in.read(bytes))!=-1) {
    out.write(bytes,0,c);
   }
   in.close();
   out.close();
   return true;
  } catch(Exception e) { 
   return false; 
  }
 }
 
 /**
  * 写入日志
  * filePath 日志文件的路径
  * code 要写入日志文件的内容
  */
 public static boolean print(String filePath,String code) {
  try {
   File tofile=new File(filePath);
   FileWriter fw=new FileWriter(tofile,true);
   BufferedWriter bw=new BufferedWriter(fw);
   PrintWriter pw=new PrintWriter(bw);
   
   System.out.println(getDate()+":"+code);
   pw.println(getDate()+":"+code);
   pw.close();
   bw.close();
   fw.close();
   return true;
  } catch (IOException e) {
   return false;
  }
 }
 
 /**
  * 判断是不是合法手机
  * handset 手机号码
  */
 public static boolean isHandset(String handset) {
  try {
   if(!handset.substring(0,1).equals("1")) {
    return false;
   }
   if (handset==null || handset.length()!=11) {
    return false;
   }
   String check = "^[0123456789]+$";
   Pattern regex = Pattern.compile(check);
   Matcher matcher = regex.matcher(handset);
   boolean isMatched = matcher.matches();
   if(isMatched) {
    return true;
   } else {
    return false;
   }
  } catch (RuntimeException e) {
   return false;
  } 
 }
}