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

时间:2022-03-10 22:00:05

平时常用的一些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;
}
}
}