📄 superutil.java
字号:
package com.chat.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.io.UnsupportedEncodingException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SuperUtil {
@SuppressWarnings("unchecked")
public static List mapValueToList(Map map) {
List list = new ArrayList();
Iterator it = map.entrySet().iterator();
while (it.hasNext()){
Map.Entry entry = (Entry) it.next();
list.add(entry.getValue());
}
return list;
}
public static String[][] mapToPlanarArray(Map map) {
String[][] string = new String[map.size()][2];
List keylist = mapKeyToList(map);
List valuelist = mapValueToList(map);
for(int i=0; i<map.size(); i++){
string[i][1] = keylist.get(i).toString();
string[i][0] = valuelist.get(i).toString();
}
return string;
}
@SuppressWarnings("unchecked")
public static List mapKeyToList(Map map) {
List list = new ArrayList();
Iterator it = map.entrySet().iterator();
while (it.hasNext()){
Map.Entry entry = (Entry) it.next();
list.add(entry.getKey());
}
return list;
}
/**
* 字符编码转换iso8859-1 转为 gb2312
*
* @param str
* @return
*/
public static String isoToGB2312(String str) {
if (isNull(str)){
return str;
}
String temp = null;
try{
temp = new String(str.getBytes("ISO8859-1"), "GB2312");
} catch ( UnsupportedEncodingException e ){
e.printStackTrace();
}
return temp;
}
/**
* 截取日期部分
*
* @param str
* @return
*/
public static String trimDateString(String str) {
if (isNull(str)){
return str;
}
str = str.trim().substring(0, 10);
return str;
}
/**
* 判断字符串是不是为空
*
* @param str
* @return
*/
public static boolean isNull(String str) {
boolean flag = false;
if (str == null || "".equals(str)){
flag = true;
} else{
flag = false;
}
return flag;
}
public static boolean isNotNull(String str) {
boolean flag = false;
if (str == null || "".equals(str)){
flag = false;
} else{
flag = true;
}
return flag;
}
/**
* 全角转半角 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文件路径
*/
@SuppressWarnings("unchecked")
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 getDate12() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String s = sdf.format(new Date());
return s;
}
/**
* 返回标准系统时间24小时制
*/
public static String getDate24() {
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:ss");
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(getDate24() + ":" + code); // 以24小时制
pw.println(getDate24() + ":" + 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;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -