Commit 0b2e1498 authored by Quxl's avatar Quxl
parents cb8e9f42 36fdc579
......@@ -29,9 +29,9 @@ public class DateUtil {
public static final String FMT_DATE_ISO = "yyyy-MM-ddTHH:mm:ss.SSSZ";
public static final String FMT_UTC_GMT = "EEE, dd MMM yyyy HH:mm:ss z";
public static final String FMT_YYYYMMddHHMMSS = "yyyyMMddHHmmss";
public static final String FMT_UTC_ALIYUN="yyyy-MM-dd'T'HH:mm:ss'Z'";
public static final String FMT_UTC_ALIYUN="YYYY-MM-DD'T'hh:mm:ss'Z'";
public static final String FMT_YYYY_MM = "yyyy/MM";
public static final String FMT_YYYY_MM = "yyyy-MM";
public static final Long SECOND = 1000L;
public static final Long MINUTE = 1000L*60;
......@@ -448,7 +448,43 @@ public class DateUtil {
}
return null;
}
public static String getLastMonth(String format,int month) {
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
//获取前一个月第一天
Calendar calendar1 = Calendar.getInstance();
calendar1.add(Calendar.MONTH, month);
calendar1.set(Calendar.DAY_OF_MONTH,1);
return sdf.format(calendar1.getTime());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String getTimeStamp() {
return String.valueOf(System.currentTimeMillis() / 1000);
}
/**
* 获取指定小时前的日期
*/
public static String beforeHourDay(String fmt,int hour) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - hour);
return format(calendar.getTime(), fmt);
}
/**
* 取得当前时间向后或向前若干天的时间
*
* @param time
* @param offset
* @return
*/
public static String beforeDay(String fmt, Integer offset) {
Date date = new Date(new Date().getTime() + (offset * 86400000L));
return format(date, fmt);
}
}
package com.egolm.common;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import com.egolm.common.exception.FileUtilException;
public class FileUtil {
private final static Map<String, String> FILE_TYPE_MAP = new HashMap<String, String>();
static {
FILE_TYPE_MAP.put("AMR", "2321414D520A");
FILE_TYPE_MAP.put("JPG", "FFD8FF"); // JPEG (jpg)
FILE_TYPE_MAP.put("PNG", "89504E47"); // PNG (png)
FILE_TYPE_MAP.put("GIF", "47494638"); // GIF (gif)
FILE_TYPE_MAP.put("TIF", "49492A00"); // TIFF (tif)
FILE_TYPE_MAP.put("BMP", "424D"); // Windows Bitmap (bmp)
FILE_TYPE_MAP.put("DWG", "41433130"); // CAD (dwg)
FILE_TYPE_MAP.put("HTML", "68746D6C3E"); // HTML (html)
FILE_TYPE_MAP.put("RTF", "7B5C727466"); // Rich Text Format (rtf)
FILE_TYPE_MAP.put("XML", "3C3F786D6C");
FILE_TYPE_MAP.put("ZIP", "504B0304");
FILE_TYPE_MAP.put("RAR", "52617221");
FILE_TYPE_MAP.put("PSD", "38425053"); // Photoshop (psd)
FILE_TYPE_MAP.put("EML", "44656C69766572792D646174653A"); // Email (eml)
FILE_TYPE_MAP.put("DBX", "CFAD12FEC5FD746F"); // Outlook Express (dbx)
FILE_TYPE_MAP.put("PST", "2142444E"); // Outlook (pst)
FILE_TYPE_MAP.put("XLS", "D0CF11E0"); // MS Word
FILE_TYPE_MAP.put("DOC", "D0CF11E0"); // MS Excel 注意:word 和 excel的文件头一样
FILE_TYPE_MAP.put("MDB", "5374616E64617264204A"); // MS Access (mdb)
FILE_TYPE_MAP.put("WPD", "FF575043"); // WordPerfect (wpd)
FILE_TYPE_MAP.put("EPS", "252150532D41646F6265");
FILE_TYPE_MAP.put("PS", "252150532D41646F6265");
FILE_TYPE_MAP.put("PDF", "255044462D312E"); // Adobe Acrobat (pdf)
FILE_TYPE_MAP.put("QDF", "AC9EBD8F"); // Quicken (qdf)
FILE_TYPE_MAP.put("PWL", "E3828596"); // Windows Password (pwl)
FILE_TYPE_MAP.put("WAV", "57415645"); // Wave (wav)
FILE_TYPE_MAP.put("AVI", "41564920");
FILE_TYPE_MAP.put("RAM", "2E7261FD"); // Real Audio (ram)
FILE_TYPE_MAP.put("RM", "2E524D46"); // Real Media (rm)
FILE_TYPE_MAP.put("MPG", "000001BA"); //
FILE_TYPE_MAP.put("MOV", "6D6F6F76"); // Quicktime (mov)
FILE_TYPE_MAP.put("ASF", "3026B2758E66CF11"); // Windows Media (asf)
FILE_TYPE_MAP.put("MID", "4D546864"); // MIDI (mid)
}
public final static String contentType(File file) {
try {
return Files.probeContentType(file.toPath());
} catch (IOException e) {
throw new FileUtilException(e);
}
}
public final static String contentType(String fullName) {
try {
return Files.probeContentType(Paths.get(fullName));
} catch (IOException e) {
throw new FileUtilException(e);
}
}
public final static String getExtName(File file) {
String extName = null;
String fileName = file.getName();
if(fileName.contains(".")) {
extName = fileName.substring(fileName.lastIndexOf(".") + 1).toUpperCase();
}
return extName;
}
public final static String imageType(File imageFile) {
if (isImage(imageFile)) {
ImageInputStream iis = null;
try {
iis = ImageIO.createImageInputStream(imageFile);
Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
if (!iter.hasNext()) {
return null;
}
ImageReader reader = iter.next();
iis.close();
return reader.getFormatName();
} catch (IOException e) {
return getExtName(imageFile);
} finally {
try {
iis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} else {
return null;
}
}
public final static String fileType(File file) {
byte[] b = new byte[50];
InputStream is = null;
try {
String extName = getExtName(file);
if(StringUtil.isNotBlank(extName)) {
return extName;
} else {
is = new FileInputStream(file);
is.read(b);
return fileType(b);
}
} catch (IOException e) {
return getExtName(file);
} finally {
try {
if(is != null) {
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public final static String fileType(byte[] b) {
String filetypeHex = String.valueOf(fileHex(b));
Iterator<Entry<String, String>> entryiterator = FILE_TYPE_MAP.entrySet().iterator();
while (entryiterator.hasNext()) {
Entry<String, String> entry = entryiterator.next();
String fileTypeHexValue = entry.getValue();
if (filetypeHex.toUpperCase().startsWith(fileTypeHexValue)) {
return entry.getKey();
}
}
return null;
}
public static final boolean isImage(File file) {
boolean flag = false;
try {
BufferedImage bufreader = ImageIO.read(file);
int width = bufreader.getWidth();
int height = bufreader.getHeight();
if (width == 0 || height == 0) {
flag = false;
} else {
flag = true;
}
} catch (IOException e) {
flag = false;
} catch (Exception e) {
flag = false;
}
return flag;
}
public final static String fileHex(byte[] b) {
StringBuilder stringBuilder = new StringBuilder();
if (b == null || b.length <= 0) {
return null;
}
for (int i = 0; i < b.length; i++) {
int v = b[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
/**
* 将字节数组转化为文件
* @param bytes
* @param filename
* @return
*/
public static File bytesToFile(byte[] bytes, File file) {
File parent = file.getParentFile();
if(!parent.exists()) {
parent.mkdirs();
}
BufferedOutputStream stream = null;
try {
FileOutputStream fstream = new FileOutputStream(file);
stream = new BufferedOutputStream(fstream);
stream.write(bytes);
} catch (Exception e) {
throw new FileUtilException(e);
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return file;
}
public static File bytesToFile(byte[] bytes, String filename) {
return bytesToFile(bytes, new File(filename));
}
/**
* 将字节数组转化为文件
* @param bytes
* @param filenames
* @return
*/
public static File[] bytesToFiles(byte[][] bytes, String[] filenames) {
File[] files = new File[filenames.length];
for(int i = 0; i < filenames.length; i++) {
files[i] = bytesToFile(bytes[i], filenames[i]);
}
return files;
}
/**
* 将文件转化为字节数组
* @param file
* @return
*/
public static byte[] fileToBytes(File file) {
byte[] bytes = null;
try {
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream baos = new ByteArrayOutputStream(102400);
byte[] b = new byte[102400];
int n;
while ((n = fis.read(b)) != -1) {
baos.write(b, 0, n);
}
fis.close();
baos.close();
bytes = baos.toByteArray();
} catch (Exception e) {
throw new FileUtilException(e);
}
return bytes;
}
/**
* 将文件转化为字节数组
* @param files
* @return
*/
public static byte[][] filesToBytes(File[] files) {
byte[][] datas = new byte[files.length][];
for(int i = 0; i < files.length; i++) {
datas[i] = fileToBytes(files[i]);
}
return datas;
}
/**
* 复制文件或文件夹
*
* @param src 源文件
* @param des 目标文件
* @throws IOException 异常时抛出
*/
public static void fileCopy(File src, File des) {
if (!src.exists()) {
return;
}
if (src.isFile()) {
InputStream ins = null;
FileOutputStream outs = null;
try {
ins = new FileInputStream(src);
outs = new FileOutputStream(des);
byte[] buffer = new byte[1024 * 512];
int length;
while ((length = ins.read(buffer)) != -1) {
outs.write(buffer, 0, length);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ins.close();
outs.flush();
outs.close();
} catch (IOException e) {
throw new FileUtilException(e);
}
}
} else {
des.mkdirs();
for (File sf : src.listFiles()) {
fileCopy(sf, new File(des.getAbsolutePath() + File.separator + sf.getName()));
}
}
}
/**
* 移动文件
* @param src 原文件
* @param des 目标文件
* @throws IOException
*/
public static void fileMove(File src, File des) {
if(src != null) {
File parent = des.getParentFile();
if(!parent.exists()) {
parent.mkdirs();
}
if(!src.renameTo(des)) {
fileCopy(src, des);
fileDelete(src);
}
} else {
throw new FileUtilException("要移动的源文件不存在:" + src);
}
}
/**
* 删除文件
* @param file 目标文件
*/
public static void fileDelete(File... files) {
for(File file : files) {
if (file.exists()) {
if (file.isFile()) {
file.delete();
} else {
for (File f : file.listFiles()) {
fileDelete(f);
}
file.delete();
}
}
}
}
public static byte[] streamToBytes(InputStream instream) {
byte[] bytes = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream(102400);
byte[] b = new byte[102400];
int n;
while ((n = instream.read(b)) != -1) {
baos.write(b, 0, n);
}
instream.close();
baos.close();
bytes = baos.toByteArray();
} catch (Exception e) {
throw new FileUtilException("将输入流转换为字节数组异常", e);
}
return bytes;
}
public static File streamToFile(InputStream instream, File file) {
FileUtil.createFile(file);
byte[] bytes = FileUtil.streamToBytes(instream);
return FileUtil.bytesToFile(bytes, file);
}
public static File streamToFile(InputStream instream, String fileName) {
return FileUtil.streamToFile(instream, new File(fileName));
}
public static void stringToFile(File file, String... strings) {
FileOutputStream fos = null;
OutputStreamWriter osw = null;
Writer writer = null;
try {
if(!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
fos = new FileOutputStream(file);
osw = new OutputStreamWriter(fos, "UTF-8");
writer = new BufferedWriter(osw);
for(String string : strings) {
writer.append(string).append(System.getProperty("line.separator"));
}
} catch (IOException e) {
throw new FileUtilException(e);
} finally {
try {
writer.close();
osw.close();
fos.close();
} catch (IOException e) {
throw new FileUtilException(e);
}
}
}
public static void stringToFile(String fileFullName, String... strings) {
FileUtil.stringToFile(new File(fileFullName), strings);
}
public static String fileToString(File file, String charset) {
try {
return new String(FileUtil.fileToBytes(file), charset);
} catch (UnsupportedEncodingException e) {
throw new FileUtilException("Unsupported charset:" + charset, e);
}
}
public static String fileToString(String fileFullName, String charset) {
return FileUtil.fileToString(new File(fileFullName), charset);
}
public static String fileToString(File file) {
return FileUtil.fileToString(file, "UTF-8");
}
public static String fileToString(String fileFullName) {
return FileUtil.fileToString(new File(fileFullName));
}
public static File fileFromClasspath(String name) {
String fullName = FileUtil.class.getResource(name).getPath();
return new File(fullName);
}
public static File createFile(String name) {
return FileUtil.createFile(new File(name));
}
public static File createFile(File file) {
File folder = file.getParentFile();
if(!(folder.exists() && folder.isDirectory())) {
folder.mkdirs();
}
if(!file.exists() || file.isDirectory()) {
try {
file.createNewFile();
} catch (IOException e) {
throw new FileUtilException(e);
}
} else {
throw new FileUtilException("文件已经存在: " + file.getAbsolutePath());
}
return file;
}
public static File createFolder(String name) {
File folder = new File(name);
if(!folder.exists() || folder.isFile()) {
folder.mkdirs();
}
return folder;
}
public static void objectToFile(Object obj, File file) {
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream(file);
oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
} catch (FileNotFoundException e) {
throw new FileUtilException(e);
} catch (IOException e) {
throw new FileUtilException(e);
} finally {
try {
oos.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static InputStream bytesToInputStream(byte[] bytes) {
return new ByteArrayInputStream(bytes);
}
/**
* 序列化
*
* @param object
* @return
* @throws IOException
*/
public static byte[] objToBytes(Object object) throws IOException {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
return bytes;
} finally {
oos.flush();
oos.close();
baos.flush();
baos.close();
}
}
/**
* 反序列化
*
* @param bytes
* @return
* @throws IOException
* @throws ClassNotFoundException
*/
public static Object bytesToObj(byte[] bytes) throws IOException, ClassNotFoundException {
ByteArrayInputStream bais = null;
ObjectInputStream ois = null;
try {
bais = new ByteArrayInputStream(bytes);
ois = new ObjectInputStream(bais);
return ois.readObject();
} finally {
ois.close();
bais.close();
}
}
public static boolean isNotExists(String jspname) {
return !new File(jspname).exists();
}
/**
*
* @Title: inputStreamToFile
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param: @param ins
* @param: @param file
* @return: void
* @throws
*/
public static void inputStreamToFile(InputStream ins,File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}
package com.egolm.common;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import com.egolm.common.exception.FileUtilException;
public class FileUtil {
private final static Map<String, String> FILE_TYPE_MAP = new HashMap<String, String>();
static {
FILE_TYPE_MAP.put("AMR", "2321414D520A");
FILE_TYPE_MAP.put("JPG", "FFD8FF"); // JPEG (jpg)
FILE_TYPE_MAP.put("PNG", "89504E47"); // PNG (png)
FILE_TYPE_MAP.put("GIF", "47494638"); // GIF (gif)
FILE_TYPE_MAP.put("TIF", "49492A00"); // TIFF (tif)
FILE_TYPE_MAP.put("BMP", "424D"); // Windows Bitmap (bmp)
FILE_TYPE_MAP.put("DWG", "41433130"); // CAD (dwg)
FILE_TYPE_MAP.put("HTML", "68746D6C3E"); // HTML (html)
FILE_TYPE_MAP.put("RTF", "7B5C727466"); // Rich Text Format (rtf)
FILE_TYPE_MAP.put("XML", "3C3F786D6C");
FILE_TYPE_MAP.put("ZIP", "504B0304");
FILE_TYPE_MAP.put("RAR", "52617221");
FILE_TYPE_MAP.put("PSD", "38425053"); // Photoshop (psd)
FILE_TYPE_MAP.put("EML", "44656C69766572792D646174653A"); // Email (eml)
FILE_TYPE_MAP.put("DBX", "CFAD12FEC5FD746F"); // Outlook Express (dbx)
FILE_TYPE_MAP.put("PST", "2142444E"); // Outlook (pst)
FILE_TYPE_MAP.put("XLS", "D0CF11E0"); // MS Word
FILE_TYPE_MAP.put("DOC", "D0CF11E0"); // MS Excel 注意:word 和 excel的文件头一样
FILE_TYPE_MAP.put("MDB", "5374616E64617264204A"); // MS Access (mdb)
FILE_TYPE_MAP.put("WPD", "FF575043"); // WordPerfect (wpd)
FILE_TYPE_MAP.put("EPS", "252150532D41646F6265");
FILE_TYPE_MAP.put("PS", "252150532D41646F6265");
FILE_TYPE_MAP.put("PDF", "255044462D312E"); // Adobe Acrobat (pdf)
FILE_TYPE_MAP.put("QDF", "AC9EBD8F"); // Quicken (qdf)
FILE_TYPE_MAP.put("PWL", "E3828596"); // Windows Password (pwl)
FILE_TYPE_MAP.put("WAV", "57415645"); // Wave (wav)
FILE_TYPE_MAP.put("AVI", "41564920");
FILE_TYPE_MAP.put("RAM", "2E7261FD"); // Real Audio (ram)
FILE_TYPE_MAP.put("RM", "2E524D46"); // Real Media (rm)
FILE_TYPE_MAP.put("MPG", "000001BA"); //
FILE_TYPE_MAP.put("MOV", "6D6F6F76"); // Quicktime (mov)
FILE_TYPE_MAP.put("ASF", "3026B2758E66CF11"); // Windows Media (asf)
FILE_TYPE_MAP.put("MID", "4D546864"); // MIDI (mid)
}
public final static String contentType(File file) {
try {
return Files.probeContentType(file.toPath());
} catch (IOException e) {
throw new FileUtilException(e);
}
}
public final static String contentType(String fullName) {
try {
return Files.probeContentType(Paths.get(fullName));
} catch (IOException e) {
throw new FileUtilException(e);
}
}
public final static String getExtName(File file) {
String extName = null;
String fileName = file.getName();
if(fileName.contains(".")) {
extName = fileName.substring(fileName.lastIndexOf(".") + 1).toUpperCase();
}
return extName;
}
public final static String imageType(File imageFile) {
if (isImage(imageFile)) {
ImageInputStream iis = null;
try {
iis = ImageIO.createImageInputStream(imageFile);
Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
if (!iter.hasNext()) {
return null;
}
ImageReader reader = iter.next();
iis.close();
return reader.getFormatName();
} catch (IOException e) {
return getExtName(imageFile);
} finally {
try {
iis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} else {
return null;
}
}
public final static String fileType(File file) {
byte[] b = new byte[50];
InputStream is = null;
try {
String extName = getExtName(file);
if(StringUtil.isNotBlank(extName)) {
return extName;
} else {
is = new FileInputStream(file);
is.read(b);
return fileType(b);
}
} catch (IOException e) {
return getExtName(file);
} finally {
try {
if(is != null) {
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public final static String fileType(byte[] b) {
String filetypeHex = String.valueOf(fileHex(b));
Iterator<Entry<String, String>> entryiterator = FILE_TYPE_MAP.entrySet().iterator();
while (entryiterator.hasNext()) {
Entry<String, String> entry = entryiterator.next();
String fileTypeHexValue = entry.getValue();
if (filetypeHex.toUpperCase().startsWith(fileTypeHexValue)) {
return entry.getKey();
}
}
return null;
}
public static final boolean isImage(File file) {
boolean flag = false;
try {
BufferedImage bufreader = ImageIO.read(file);
int width = bufreader.getWidth();
int height = bufreader.getHeight();
if (width == 0 || height == 0) {
flag = false;
} else {
flag = true;
}
} catch (IOException e) {
flag = false;
} catch (Exception e) {
flag = false;
}
return flag;
}
public final static String fileHex(byte[] b) {
StringBuilder stringBuilder = new StringBuilder();
if (b == null || b.length <= 0) {
return null;
}
for (int i = 0; i < b.length; i++) {
int v = b[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
/**
* 将字节数组转化为文件
* @param bytes
* @param filename
* @return
*/
public static File bytesToFile(byte[] bytes, File file) {
File parent = file.getParentFile();
if(!parent.exists()) {
parent.mkdirs();
}
BufferedOutputStream stream = null;
try {
FileOutputStream fstream = new FileOutputStream(file);
stream = new BufferedOutputStream(fstream);
stream.write(bytes);
} catch (Exception e) {
throw new FileUtilException(e);
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return file;
}
public static File bytesToFile(byte[] bytes, String filename) {
return bytesToFile(bytes, new File(filename));
}
/**
* 将字节数组转化为文件
* @param bytes
* @param filenames
* @return
*/
public static File[] bytesToFiles(byte[][] bytes, String[] filenames) {
File[] files = new File[filenames.length];
for(int i = 0; i < filenames.length; i++) {
files[i] = bytesToFile(bytes[i], filenames[i]);
}
return files;
}
/**
* 将文件转化为字节数组
* @param file
* @return
*/
public static byte[] fileToBytes(File file) {
byte[] bytes = null;
try {
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream baos = new ByteArrayOutputStream(102400);
byte[] b = new byte[102400];
int n;
while ((n = fis.read(b)) != -1) {
baos.write(b, 0, n);
}
fis.close();
baos.close();
bytes = baos.toByteArray();
} catch (Exception e) {
throw new FileUtilException(e);
}
return bytes;
}
/**
* 将文件转化为字节数组
* @param files
* @return
*/
public static byte[][] filesToBytes(File[] files) {
byte[][] datas = new byte[files.length][];
for(int i = 0; i < files.length; i++) {
datas[i] = fileToBytes(files[i]);
}
return datas;
}
/**
* 复制文件或文件夹
*
* @param src 源文件
* @param des 目标文件
* @throws IOException 异常时抛出
*/
public static void fileCopy(File src, File des) {
if (!src.exists()) {
return;
}
if (src.isFile()) {
InputStream ins = null;
FileOutputStream outs = null;
try {
ins = new FileInputStream(src);
outs = new FileOutputStream(des);
byte[] buffer = new byte[1024 * 512];
int length;
while ((length = ins.read(buffer)) != -1) {
outs.write(buffer, 0, length);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ins.close();
outs.flush();
outs.close();
} catch (IOException e) {
throw new FileUtilException(e);
}
}
} else {
des.mkdirs();
for (File sf : src.listFiles()) {
fileCopy(sf, new File(des.getAbsolutePath() + File.separator + sf.getName()));
}
}
}
/**
* 移动文件
* @param src 原文件
* @param des 目标文件
* @throws IOException
*/
public static void fileMove(File src, File des) {
if(src != null) {
File parent = des.getParentFile();
if(!parent.exists()) {
parent.mkdirs();
}
if(!src.renameTo(des)) {
fileCopy(src, des);
fileDelete(src);
}
} else {
throw new FileUtilException("要移动的源文件不存在:" + src);
}
}
/**
* 删除文件
* @param file 目标文件
*/
public static void fileDelete(File... files) {
for(File file : files) {
if (file.exists()) {
if (file.isFile()) {
file.delete();
} else {
for (File f : file.listFiles()) {
fileDelete(f);
}
file.delete();
}
}
}
}
public static byte[] streamToBytes(InputStream instream) {
byte[] bytes = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream(102400);
byte[] b = new byte[102400];
int n;
while ((n = instream.read(b)) != -1) {
baos.write(b, 0, n);
}
instream.close();
baos.close();
bytes = baos.toByteArray();
} catch (Exception e) {
throw new FileUtilException("将输入流转换为字节数组异常", e);
}
return bytes;
}
public static File streamToFile(InputStream instream, File file) {
FileUtil.createFile(file);
byte[] bytes = FileUtil.streamToBytes(instream);
return FileUtil.bytesToFile(bytes, file);
}
public static File streamToFile(InputStream instream, String fileName) {
return FileUtil.streamToFile(instream, new File(fileName));
}
public static void stringToFile(File file, String... strings) {
FileOutputStream fos = null;
OutputStreamWriter osw = null;
Writer writer = null;
try {
if(!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
fos = new FileOutputStream(file);
osw = new OutputStreamWriter(fos, "UTF-8");
writer = new BufferedWriter(osw);
for(String string : strings) {
writer.append(string).append(System.getProperty("line.separator"));
}
} catch (IOException e) {
throw new FileUtilException(e);
} finally {
try {
writer.close();
osw.close();
fos.close();
} catch (IOException e) {
throw new FileUtilException(e);
}
}
}
public static void stringToFile(String fileFullName, String... strings) {
FileUtil.stringToFile(new File(fileFullName), strings);
}
public static String fileToString(File file, String charset) {
try {
return new String(FileUtil.fileToBytes(file), charset);
} catch (UnsupportedEncodingException e) {
throw new FileUtilException("Unsupported charset:" + charset, e);
}
}
public static String fileToString(String fileFullName, String charset) {
return FileUtil.fileToString(new File(fileFullName), charset);
}
public static String fileToString(File file) {
return FileUtil.fileToString(file, "UTF-8");
}
public static String fileToString(String fileFullName) {
return FileUtil.fileToString(new File(fileFullName));
}
public static File fileFromClasspath(String name) {
String fullName = FileUtil.class.getResource(name).getPath();
return new File(fullName);
}
public static File createFile(String name) {
return FileUtil.createFile(new File(name));
}
public static File createFile(File file) {
File folder = file.getParentFile();
if(!(folder.exists() && folder.isDirectory())) {
folder.mkdirs();
}
if(!file.exists() || file.isDirectory()) {
try {
file.createNewFile();
} catch (IOException e) {
throw new FileUtilException(e);
}
} else {
throw new FileUtilException("文件已经存在: " + file.getAbsolutePath());
}
return file;
}
public static File createFolder(String name) {
File folder = new File(name);
if(!folder.exists() || folder.isFile()) {
folder.mkdirs();
}
return folder;
}
public static void objectToFile(Object obj, File file) {
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream(file);
oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
} catch (FileNotFoundException e) {
throw new FileUtilException(e);
} catch (IOException e) {
throw new FileUtilException(e);
} finally {
try {
oos.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static InputStream bytesToInputStream(byte[] bytes) {
return new ByteArrayInputStream(bytes);
}
/**
* 序列化
*
* @param object
* @return
* @throws IOException
*/
public static byte[] objToBytes(Object object) throws IOException {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
return bytes;
} finally {
oos.flush();
oos.close();
baos.flush();
baos.close();
}
}
/**
* 反序列化
*
* @param bytes
* @return
* @throws IOException
* @throws ClassNotFoundException
*/
public static Object bytesToObj(byte[] bytes) throws IOException, ClassNotFoundException {
ByteArrayInputStream bais = null;
ObjectInputStream ois = null;
try {
bais = new ByteArrayInputStream(bytes);
ois = new ObjectInputStream(bais);
return ois.readObject();
} finally {
ois.close();
bais.close();
}
}
public static boolean isNotExists(String jspname) {
return !new File(jspname).exists();
}
/**
*
* @Title: inputStreamToFile
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param: @param ins
* @param: @param file
* @return: void
* @throws
*/
public static void inputStreamToFile(InputStream ins,File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Object fileToObject(File file) {
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream(file);
ois = new ObjectInputStream(fis);
return ois.readObject();
} catch (FileNotFoundException e) {
throw new FileUtilException(e);
} catch (IOException e) {
throw new FileUtilException(e);
} catch (ClassNotFoundException e) {
throw new FileUtilException(e);
} finally {
try {
ois.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
\ No newline at end of file
package com.egolm.common;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;
public class GsonUtil {
public static final Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").serializeNulls().disableHtmlEscaping().create();
public static String toJson(Object object) {
return GsonUtil.gson.toJson(object);
}
public static Map<String, Object> toMap(String json) {
Map<String, Object> map = new HashMap<String, Object>();
Map<?, ?> jsonMap = GsonUtil.gson.fromJson(json, Map.class);
if(jsonMap != null) {
for(Object key : jsonMap.keySet()) {
map.put((String)key, jsonMap.get(key));
}
}
return map;
}
public static Map<?, ?> toMap(String json, Map<?, ?> defaultMap) {
try {
return GsonUtil.toMap(json);
} catch (JsonSyntaxException e) {
return defaultMap;
}
}
public static <T> T toObj(String json, Class<T> type) {
return GsonUtil.gson.fromJson(json, type);
}
public static List<?> toList(String json) {
return GsonUtil.gson.fromJson(json, List.class);
}
}
package com.egolm.common;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;
public class GsonUtil {
public static final Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").serializeNulls().disableHtmlEscaping().create();
public static String toJson(Object object) {
return GsonUtil.gson.toJson(object);
}
public static Map<String, Object> toMap(String json) {
Map<String, Object> map = new HashMap<String, Object>();
Map<?, ?> jsonMap = GsonUtil.gson.fromJson(json, Map.class);
if(jsonMap != null) {
for(Object key : jsonMap.keySet()) {
map.put((String)key, jsonMap.get(key));
}
}
return map;
}
public static Map<?, ?> toMap(String json, Map<?, ?> defaultMap) {
try {
return GsonUtil.toMap(json);
} catch (JsonSyntaxException e) {
return defaultMap;
}
}
public static <T> T toObj(String json, Class<T> type) {
return GsonUtil.gson.fromJson(json, type);
}
public static List<?> toList(String json) {
return GsonUtil.gson.fromJson(json, List.class);
}
}
package com.egolm.common;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Hex;
import com.egolm.common.exception.CharsetException;
import com.egolm.common.exception.MD5Exception;
import com.egolm.common.exception.PluginException;
import com.egolm.common.exception.ReflectException;
import com.egolm.common.exception.SHA1Exception;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
/**
*
* @Description 字符串工具类
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
*/
public class StringUtil {
public static String join(Map<String, Object> map, String sign, String before, String after, String joinKey) {
sign = sign == null ? "" : sign;
before = before == null ? "" : before;
after = after == null ? "" : after;
List<String> strs = new ArrayList<String>();
for(String key : map.keySet()) {
StringBuffer sbuffer = new StringBuffer();
sbuffer.append(key).append(joinKey);
sbuffer.append(StringUtil.format(map.get(key)));
strs.add(sbuffer.toString());
}
return StringUtil.join(sign, before, after, strs);
}
public static String join(String sign, Collection<String> strs) {
return join(sign, "", "", strs.toArray(new String[strs.size()]));
}
/**
*
* @Description 连接字符串
* @param sign 连接符
* @param before 前置字符串
* @param strs 要连接的字符串集合
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String join(String sign, String before, Collection<String> strs) {
return join(sign, before, "", strs.toArray(new String[strs.size()]));
}
/**
*
* @Description 连接字符串
* @param sign 连接符
* @param before 前置字符串
* @param after 后置字符串
* @param strs 要连接的字符串集合
* @return
* @author 曲欣亮
* @date 2016年4月24日
* @since 2016年4月24日
* @return String
* @throws
*/
public static String join(String sign, String before, String after, String... strs) {
return StringUtil.join(sign, before, after, "", strs);
}
public static String join(String sign, String before, String after, String def, String[] strs) {
if (strs == null || strs.length == 0 || StringUtil.isEmptyAll((Object[])strs)) {
return StringUtil.isEmpty(def) ? "" : def;
} else {
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < strs.length; i++) {
String str = String.valueOf(strs[i]);
sb.append((i == 0 && before != null) ? before : "").append(str == null ? "" : str).append(i < strs.length - 1 ? (sign == null ? "" : sign) : "").append((i == strs.length - 1 && after != null) ? after : "");
}
return String.valueOf(sb);
}
}
/**
*
* @Description 连接字符串
* @param sign 连接符
* @param before 前置字符串
* @param after 后置字符串
* @param strs 要连接的字符串的集合
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String join(String sign, String before, String after, Collection<String> strs) {
return StringUtil.join(sign, before, after, strs.toArray(new String[strs.size()]));
}
public static String join(String sign, String before, String after, String def, Collection<String> strs) {
return StringUtil.join(sign, before, after, def, strs.toArray(new String[strs.size()]));
}
/**
*
* @Description 连接字符串
* @param str 要链接的字符串
* @param sign 连接符
* @param count 链接的次数
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String join(String str, String sign, int count) {
return StringUtil.join(str, sign, count, "", "");
}
/**
*
* @Description 连接字符串
* @param str 要链接的字符串
* @param sign 连接符
* @param count 链接次数
* @param before 前置字符串
* @param after 后置字符串
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String join(String str, String sign, int count, String before, String after) {
if (str == null || count == 0) {
return "";
} else {
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < count; i++) {
sb.append(i == 0 && before != null ? before : "").append(str).append(i < count - 1 ? (sign == null ? "" : sign) : "").append(i == count - 1 && after != null ? after : "");
}
return String.valueOf(sb);
}
}
/**
*
* @Description 判断字符串数组是否包含特定字符串
* @param arry 要判断的字符串数组
* @param arg 要找的目标字符串
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean contains(String[] arry, String arg) {
for (String str : arry) {
if (arg != null && arg.equals(str)) {
return true;
} else if (arg == null && str == null) {
return true;
}
}
return false;
}
/**
*
* @Description 判断字符串是否是整数
* @param val
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean isInt(String val) {
String regex = "^-?\\d+$";
return matcher(val, regex);
}
/**
*
* @Description 判断字符串是否是浮点数
* @param val
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean isFloat(String val) {
String regex = "^(-?\\d+)(\\.\\d+)?$";
return matcher(val, regex);
}
/**
*
* @Description 判断字符串是否是日期
* @param val
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean isDate(String val) {
String regex = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1][0-9])|([2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$";
return matcher(val, regex);
}
/**
*
* @Description 判断字符串是否是IP地址
* @param ip
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean isIp(String ip) {
String regex = "(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})";
return matcher(ip, regex);
}
/**
*
* @Description 正则表达式验证字符串
* @param val 目标字符串
* @param regex 正则表达式
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean matcher(String val, String regex) {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(val);
return m.matches();
}
/**
* 只要有一个不为空,就返回true
* @param objs
* @return
*/
public static boolean isNotEmptyOne(Object... objs) {
for(Object obj : objs) {
if(StringUtil.isNotEmpty(obj)) {
return true;
}
}
return false;
}
public static boolean isEmptyAll(Object... objs) {
for(Object obj : objs) {
if(StringUtil.isNotEmpty(obj)) {
return false;
}
}
return true;
}
/**
*
* @Description 判断字符串是否为空
* @param obj
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean obj==null或obj==""返回true否则返回false
* @throws
*/
public static boolean isEmpty(Object obj) {
if (obj == null || "".equals(String.valueOf(obj))) {
return true;
} else {
return false;
}
}
/**
*
* @Description 判断字符串是否是undefined或null
* @param objs
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean 全部对象都不是null和"undefined"和"null"返回true否则返回false
* @throws
*/
public static boolean isNotUndefinedAndNull(Object... objs) {
if (objs == null || objs.length == 0) {
return false;
} else {
for (Object obj : objs) {
String objStr = String.valueOf(obj).toLowerCase();
if (obj == null || "undefined".equals(objStr) || "null".equals(objStr)) {
return false;
}
}
return true;
}
}
/**
*
* @Description 判断对象是否是undefined或null
* @param obj
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean obj==null,obj=="undefined",obj=="null" 返回true否则返回false
* @throws
*/
public static boolean isUndefinedOrNull(Object obj) {
String objStr = String.valueOf(obj).toLowerCase();
if (obj == null || "undefined".equals(objStr) || "null".equals(objStr)) {
return true;
} else {
return false;
}
}
/**
*
* @Description 判断一个或多个字符串是否非空
* @param objs
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean 全部字符串都不为null和空字符串返回true否则返回false
* @throws
*/
public static boolean isNotEmpty(Object... objs) {
if (objs == null || objs.length == 0) {
return false;
} else {
for (Object obj : objs) {
if (obj == null || "".equals(String.valueOf(obj))) {
return false;
}
}
return true;
}
}
/**
*
* @Description 判断一个字符串是否是空白的(包括空格、换行、制表符)
* @param obj
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean isBlank(Object obj) {
if (obj == null || String.valueOf(obj).trim().length() == 0) {
return true;
} else {
return false;
}
}
/**
*
* @Description 判断一个或多个字符串是否是空白的(包括空格、换行、制表符)
* @param objs
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean 全部不为空白时返回true 否则只要有一个是空白的就返回false
* @throws
*/
public static boolean isNotBlank(Object... objs) {
if (objs == null || objs.length == 0) {
return false;
} else {
for (Object obj : objs) {
if (obj == null || String.valueOf(obj).trim().length() == 0) {
return false;
}
}
return true;
}
}
/**
*
* @Description 截取字符串
* @param string 被截取的字符串
* @param from 开始点子串
* @param to 结束点子串
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String substring(String string, String from, String to) {
return string.substring(string.indexOf(from) + from.length(), string.lastIndexOf(to));
}
/**
*
* @Description 获取字符串的字节长度
* @param string
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return int
* @throws
*/
public static int bytesLength(String string) {
int length = 0;
for (int i = 0; i < string.length(); i++) {
if (new String(string.charAt(i) + "").getBytes().length > 1) {
length += 2;
} else {
length += 1;
}
}
return length / 2;
}
/**
*
* @Description 获取字符的ASCII码
* @param c
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return int
* @throws
*/
public static int toAscii(char c) {
try {
byte[] bytes = String.valueOf(c).getBytes("gb2312");
if (bytes.length == 1) {
return bytes[0];
} else if (bytes.length == 2) {
int hightByte = 256 + bytes[0];
int lowByte = 256 + bytes[1];
return (256 * hightByte + lowByte) - 256 * 256;
} else {
return 0;
}
} catch (Exception e) {
throw new ReflectException(e);
}
}
/**
*
* @Description 获取汉字词组拼音简写
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回小写拼音
* @throws
*/
public static String simplePinyin(String str) {
if(StringUtil.isNotEmpty(str)) {
StringBuffer sbuffer = new StringBuffer();
for(char c : str.toCharArray()) {
sbuffer.append(StringUtil.firstPinyin(String.valueOf(c)));
}
return String.valueOf(sbuffer);
} else {
return "";
}
}
/**
*
* @Description 获取汉字词组拼音简写
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回大写拼音
* @throws
*/
public static String SimplePinyin(String str) {
return simplePinyin(str).toUpperCase();
}
public static String[] PinyinKAnalyzer(String str, Integer minLength, Integer maxLength) {
List<String> list = new ArrayList<String>();
for(int i = 0; i < str.length(); i++) {
for(int n = i; n < str.length(); n++) {
Integer length = n+1-i;
if(length >= minLength && maxLength >= length) {
list.add(str.substring(i, n+1));
}
}
}
return list.toArray(new String[list.size()]);
}
/**
*
* @Description 获取中文字符串的全拼
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回小写拼音
* @throws
*/
public static String fullPinyin(String src) {
char[] t1 = null;
t1 = src.toCharArray();
String[] t2 = new String[t1.length];
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
String t4 = "";
int t0 = t1.length;
try {
for (int i = 0; i < t0; i++) {
if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
t4 += t2[0];
} else {
t4 += java.lang.Character.toString(t1[i]);
}
}
return t4;
} catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
}
return t4;
}
/**
*
* @Description 获取中文字符串的全拼
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回大写拼音
* @throws
*/
public static String FullPinyin(String str) {
return fullPinyin(str).toUpperCase();
}
/**
*
* @Description 获取汉子拼音首字母
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回小写首拼音字母
* @throws
*/
public static String firstPinyin(String str) {
try {
return String.valueOf(fullPinyin(str).charAt(0));
} catch (Exception e) {
return "";
}
}
/**
*
* @Description 获取汉子拼音首字母
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回大写首拼音字母
* @throws
*/
public static String FirstPinyin(String str) {
return firstPinyin(str).toUpperCase();
}
/**
* @throws IOException
*
* @Description 从BufferedReader对象中读取字符串或文本
* @param reader
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String read(Reader reader) throws IOException {
BufferedReader br = null;
br = new BufferedReader(reader);
StringBuffer sb = new StringBuffer();
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + System.getProperty("line.separator"));
}
return sb.toString();
}
/**
* 从输入流总读取字符串
* @param is
* @return
* @throws IOException
*/
public static String read(InputStream is) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String str = read(br);
return str;
}
/**
* 将文本写入的输出流
* @param writer
* @param text
*/
public static void write(Writer writer, String text) {
PrintWriter printWriter = new PrintWriter(writer);
printWriter.append(text);
printWriter.flush();
}
/**
*
* @Description 首字母大写
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String upperFirst(String str) {
char[] ch = str.toCharArray();
if (ch[0] >= 'a' && ch[0] <= 'z') {
ch[0] = (char) (ch[0] - 32);
}
return new String(ch);
}
/**
*
* @Description 首字母小写
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String lowerFirst(String str) {
char[] chars = new char[1];
chars[0] = str.charAt(0);
String temp = new String(chars);
if (chars[0] >= 'A' && chars[0] <= 'Z') {
return str.replaceFirst(temp, temp.toLowerCase());
}
return str;
}
/**
*
* @Description 返回一个非空的字符串
* @param strings
* @return
* @author 曲欣亮
* @date 2016年4月26日
* @since 2016年4月26日
* @return String
* @throws
*/
public static String getNotNull(String... strings) {
for(String string : strings) {
if(string != null) {
return string;
}
}
throw new PluginException("NotNull Data is null");
}
/**
*
* @Description 返回一个非空的字符串
* @param strings
* @return
* @author 曲欣亮
* @date 2016年4月26日
* @since 2016年4月26日
* @return String
* @throws
*/
public static String getNotEmpty(String... strings) {
for(String string : strings) {
if(StringUtil.isNotEmpty(string)) {
return string;
}
}
throw new PluginException("NotEmpty Data is null");
}
/**
*
* @Description 返回一个非空的字符串
* @param strings
* @return
* @author 曲欣亮
* @date 2016年4月26日
* @since 2016年4月26日
* @return String
* @throws
*/
public static String getNotBlank(String... strings) {
for(String string : strings) {
if(StringUtil.isNotBlank(string)) {
return string;
}
}
throw new PluginException("NotBlank Data is null");
}
/**
*
* @Description 返回一个非空的字符串
* @param strings
* @return
* @author 曲欣亮
* @date 2016年4月26日
* @since 2016年4月26日
* @return String
* @throws
*/
public static String getNotUndefinedAndNull(String... strings) {
for(String string : strings) {
if(StringUtil.isNotUndefinedAndNull(string)) {
return string;
}
}
throw new PluginException("UndefinedAndNull Data is null");
}
public static String format(Object obj) {
if(obj == null) {
return null;
}
if(obj instanceof Date) {
return DateUtil.format((Date)obj);
} else {
return String.valueOf(obj);
}
}
public static String formatLength(Integer nNo, String format) {
return formatLength(String.valueOf(nNo), format);
}
public static String formatLength(Long nNo, String format) {
return formatLength(String.valueOf(nNo), format);
}
public static String formatLength(String sNo, String format) {
Integer end = (format.length() > sNo.length() ? (format.length() - sNo.length()) : 0);
return format.substring(0, end) + sNo;
}
public static String toJson(Object object) {
return GsonUtil.toJson(object);
}
public static String trim(String string, String... strs) {
String tmp = string;
for(String str : strs) {
while(tmp.startsWith(str)) {
tmp = tmp.substring(1);
}
while(tmp.endsWith(str)) {
tmp = tmp.substring(0, tmp.length() - 1);
}
}
return tmp;
}
public static String decodeBase64AsString(String base64String) {
return new String(decodeBase64String(base64String));
}
public static String encodeBase64String(String string) {
return encodeBase64String(string.getBytes());
}
public static String encodeBase64String(byte[] bytes) {
return new String(Base64.encodeBase64(bytes));
}
public static String decodeHexAsString(String hexString) {
return new String(decodeHexString(hexString));
}
public static String encodeHexString(String string) {
return encodeHexString(string.getBytes());
}
public static String encodeHexString(byte[] bytes) {
return Hex.encodeHexString(bytes);
}
public static byte[] decodeBase64String(String base64String) {
return Base64.decodeBase64(base64String);
}
public static byte[] decodeHexString(String hexString) {
try {
return Hex.decodeHex(hexString.toCharArray());
} catch (DecoderException e) {
throw new CharsetException(e);
}
}
public static String toSHA1String(String text) {
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
messageDigest.update(text.getBytes());
byte[] bytes = messageDigest.digest();
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
String shaHex = Integer.toHexString(bytes[i] & 0xFF);
if (shaHex.length() < 2) {
hexString.append(0);
}
hexString.append(shaHex);
}
return hexString.toString().toUpperCase();
} catch (Exception e) {
throw new SHA1Exception(e);
}
}
public static String toHMACSHA1String(String encryptText, String encryptKey) {
try {
SecretKey secretKey = new SecretKeySpec(encryptKey.getBytes(), "HmacSHA1");
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
byte[] bs = mac.doFinal(encryptText.getBytes());
return Base64.encodeBase64String(bs);
} catch (Exception e) {
throw new SHA1Exception(e);
}
}
public static String toMD5HexString(String text) {
try {
return StringUtil.encodeHexString(MessageDigest.getInstance("MD5").digest(text.getBytes())).toUpperCase();
} catch (Exception e) {
throw new MD5Exception(e);
}
}
public static String toMD5Base64String(String text) {
try {
return StringUtil.encodeBase64String(MessageDigest.getInstance("MD5").digest(text.getBytes()));
} catch (Exception e) {
throw new MD5Exception(e);
}
}
public static String getUid() {
return UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
}
public static String getId(Integer length, String prefix) {
if(prefix == null) {
prefix = "";
}
if(length == null) {
length = 32;
}
Integer i = length - prefix.length() - 17;
return prefix + DateUtil.format(new Date(), "yyyyMMddHHmmssSSS") + (i <= 0 ? "" : MathUtil.random(i));
}
public static String getId(String prefix) {
return getId(32, prefix);
}
public static String getId(Integer length) {
return getId(length, "");
}
public static String getId() {
return getId(32, "");
}
public static String[] search(String string, String regex) {
return StringUtil.search(string, regex, null);
}
public static String[] search(String string, String regex, Integer groupNo) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(string);
List<String> list = new ArrayList<String>();
while(matcher.find()) {
if(groupNo != null) {
list.add(matcher.group(groupNo));
} else {
list.add(matcher.group(0));
}
}
return list.toArray(new String[list.size()]);
}
public static String[] searchNumber(String string) {
List<String> numbers = new ArrayList<String>();
Pattern pattern = Pattern.compile("[\\d]+(\\.?[\\d]+)?");
Matcher matcher = pattern.matcher(string);
while(matcher.find()) {
numbers.add(matcher.group(0));
}
return numbers.toArray(new String[numbers.size()]);
}
/**
*
* @Description 从BufferedReader对象中读取字符串或文本
* @param reader
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String read(BufferedReader reader) {
try {
StringBuffer sb = new StringBuffer();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + System.getProperty("line.separator"));
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
/**
*
* @Title: doMD5Sign
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param: @param map
* @param: @return
* @return: String
* @throws
*/
public static String doMD5Sign(Map<String, String> map){
Map<String, String> compMap = new TreeMap<String, String>(
new Comparator<String>() {
public int compare(String obj1, String obj2) {
return obj1.compareTo(obj2);
}
});
for(Entry<String, String> entry : map.entrySet()){
compMap.put(entry.getKey(), entry.getValue());
}
StringBuffer sb = new StringBuffer();
for(Entry<String, String> entry : compMap.entrySet()){
sb.append("&");
sb.append(entry.getKey());
sb.append("=");
sb.append(entry.getValue());
}
String s = sb.toString().substring(1);
byte[] secretBytes = null;
try {
secretBytes = MessageDigest.getInstance("MD5").digest(s.getBytes());
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sign = Hex.encodeHexString(secretBytes).toUpperCase();
return sign;
}
public static String getRandom(int num){
return String.valueOf(Math.random()).substring(2, 2+num);
}
/**
* 获取随机字符串
* @return
*/
public static String getNonceStr() {
// 随机数
String currTime = DateUtil.format(new Date(), DateUtil.FMT_YYYYMMddHHMMSS);
// 8位日期
String strTime = currTime.substring(8, currTime.length());
// 四位随机数
String strRandom = getRandom(4) + "";
// 10位序列号,可以自行调整。
return strTime + strRandom;
}
public static final String inputStream2String(InputStream in)
throws UnsupportedEncodingException, IOException {
if (in == null)
return "";
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = in.read(b)) != -1;) {
out.append(new String(b, 0, n, "UTF-8"));
}
return out.toString();
}
}
package com.egolm.common;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Hex;
import com.egolm.common.exception.CharsetException;
import com.egolm.common.exception.MD5Exception;
import com.egolm.common.exception.PluginException;
import com.egolm.common.exception.ReflectException;
import com.egolm.common.exception.SHA1Exception;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
/**
*
* @Description 字符串工具类
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
*/
public class StringUtil {
public static String join(Map<String, Object> map, String sign, String before, String after, String joinKey) {
sign = sign == null ? "" : sign;
before = before == null ? "" : before;
after = after == null ? "" : after;
List<String> strs = new ArrayList<String>();
for(String key : map.keySet()) {
StringBuffer sbuffer = new StringBuffer();
sbuffer.append(key).append(joinKey);
sbuffer.append(StringUtil.format(map.get(key)));
strs.add(sbuffer.toString());
}
return StringUtil.join(sign, before, after, strs);
}
public static String join(String sign, Collection<String> strs) {
return join(sign, "", "", strs.toArray(new String[strs.size()]));
}
/**
*
* @Description 连接字符串
* @param sign 连接符
* @param before 前置字符串
* @param strs 要连接的字符串集合
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String join(String sign, String before, Collection<String> strs) {
return join(sign, before, "", strs.toArray(new String[strs.size()]));
}
/**
*
* @Description 连接字符串
* @param sign 连接符
* @param before 前置字符串
* @param after 后置字符串
* @param strs 要连接的字符串集合
* @return
* @author 曲欣亮
* @date 2016年4月24日
* @since 2016年4月24日
* @return String
* @throws
*/
public static String join(String sign, String before, String after, String... strs) {
return StringUtil.join(sign, before, after, "", strs);
}
public static String join(String sign, String before, String after, String def, String[] strs) {
if (strs == null || strs.length == 0 || StringUtil.isEmptyAll((Object[])strs)) {
return StringUtil.isEmpty(def) ? "" : def;
} else {
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < strs.length; i++) {
String str = String.valueOf(strs[i]);
sb.append((i == 0 && before != null) ? before : "").append(str == null ? "" : str).append(i < strs.length - 1 ? (sign == null ? "" : sign) : "").append((i == strs.length - 1 && after != null) ? after : "");
}
return String.valueOf(sb);
}
}
/**
*
* @Description 连接字符串
* @param sign 连接符
* @param before 前置字符串
* @param after 后置字符串
* @param strs 要连接的字符串的集合
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String join(String sign, String before, String after, Collection<String> strs) {
return StringUtil.join(sign, before, after, strs.toArray(new String[strs.size()]));
}
public static String join(String sign, String before, String after, String def, Collection<String> strs) {
return StringUtil.join(sign, before, after, def, strs.toArray(new String[strs.size()]));
}
/**
*
* @Description 连接字符串
* @param str 要链接的字符串
* @param sign 连接符
* @param count 链接的次数
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String join(String str, String sign, int count) {
return StringUtil.join(str, sign, count, "", "");
}
/**
*
* @Description 连接字符串
* @param str 要链接的字符串
* @param sign 连接符
* @param count 链接次数
* @param before 前置字符串
* @param after 后置字符串
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String join(String str, String sign, int count, String before, String after) {
if (str == null || count == 0) {
return "";
} else {
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < count; i++) {
sb.append(i == 0 && before != null ? before : "").append(str).append(i < count - 1 ? (sign == null ? "" : sign) : "").append(i == count - 1 && after != null ? after : "");
}
return String.valueOf(sb);
}
}
/**
*
* @Description 判断字符串数组是否包含特定字符串
* @param arry 要判断的字符串数组
* @param arg 要找的目标字符串
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean contains(String[] arry, String arg) {
for (String str : arry) {
if (arg != null && arg.equals(str)) {
return true;
} else if (arg == null && str == null) {
return true;
}
}
return false;
}
/**
*
* @Description 判断字符串是否是整数
* @param val
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean isInt(String val) {
String regex = "^-?\\d+$";
return matcher(val, regex);
}
/**
*
* @Description 判断字符串是否是浮点数
* @param val
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean isFloat(String val) {
String regex = "^(-?\\d+)(\\.\\d+)?$";
return matcher(val, regex);
}
/**
*
* @Description 判断字符串是否是日期
* @param val
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean isDate(String val) {
String regex = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1][0-9])|([2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$";
return matcher(val, regex);
}
/**
*
* @Description 判断字符串是否是IP地址
* @param ip
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean isIp(String ip) {
String regex = "(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})";
return matcher(ip, regex);
}
/**
*
* @Description 正则表达式验证字符串
* @param val 目标字符串
* @param regex 正则表达式
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean matcher(String val, String regex) {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(val);
return m.matches();
}
/**
* 只要有一个不为空,就返回true
* @param objs
* @return
*/
public static boolean isNotEmptyOne(Object... objs) {
for(Object obj : objs) {
if(StringUtil.isNotEmpty(obj)) {
return true;
}
}
return false;
}
public static boolean isEmptyAll(Object... objs) {
for(Object obj : objs) {
if(StringUtil.isNotEmpty(obj)) {
return false;
}
}
return true;
}
/**
*
* @Description 判断字符串是否为空
* @param obj
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean obj==null或obj==""返回true否则返回false
* @throws
*/
public static boolean isEmpty(Object obj) {
if (obj == null || "".equals(String.valueOf(obj))) {
return true;
} else {
return false;
}
}
/**
*
* @Description 判断字符串是否是undefined或null
* @param objs
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean 全部对象都不是null和"undefined"和"null"返回true否则返回false
* @throws
*/
public static boolean isNotUndefinedAndNull(Object... objs) {
if (objs == null || objs.length == 0) {
return false;
} else {
for (Object obj : objs) {
String objStr = String.valueOf(obj).toLowerCase();
if (obj == null || "undefined".equals(objStr) || "null".equals(objStr)) {
return false;
}
}
return true;
}
}
/**
*
* @Description 判断对象是否是undefined或null
* @param obj
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean obj==null,obj=="undefined",obj=="null" 返回true否则返回false
* @throws
*/
public static boolean isUndefinedOrNull(Object obj) {
String objStr = String.valueOf(obj).toLowerCase();
if (obj == null || "undefined".equals(objStr) || "null".equals(objStr)) {
return true;
} else {
return false;
}
}
/**
*
* @Description 判断一个或多个字符串是否非空
* @param objs
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean 全部字符串都不为null和空字符串返回true否则返回false
* @throws
*/
public static boolean isNotEmpty(Object... objs) {
if (objs == null || objs.length == 0) {
return false;
} else {
for (Object obj : objs) {
if (obj == null || "".equals(String.valueOf(obj))) {
return false;
}
}
return true;
}
}
/**
*
* @Description 判断一个字符串是否是空白的(包括空格、换行、制表符)
* @param obj
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean
* @throws
*/
public static boolean isBlank(Object obj) {
if (obj == null || String.valueOf(obj).trim().length() == 0) {
return true;
} else {
return false;
}
}
/**
*
* @Description 判断一个或多个字符串是否是空白的(包括空格、换行、制表符)
* @param objs
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return boolean 全部不为空白时返回true 否则只要有一个是空白的就返回false
* @throws
*/
public static boolean isNotBlank(Object... objs) {
if (objs == null || objs.length == 0) {
return false;
} else {
for (Object obj : objs) {
if (obj == null || String.valueOf(obj).trim().length() == 0) {
return false;
}
}
return true;
}
}
/**
*
* @Description 截取字符串
* @param string 被截取的字符串
* @param from 开始点子串
* @param to 结束点子串
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String substring(String string, String from, String to) {
return string.substring(string.indexOf(from) + from.length(), string.lastIndexOf(to));
}
/**
*
* @Description 获取字符串的字节长度
* @param string
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return int
* @throws
*/
public static int bytesLength(String string) {
int length = 0;
for (int i = 0; i < string.length(); i++) {
if (new String(string.charAt(i) + "").getBytes().length > 1) {
length += 2;
} else {
length += 1;
}
}
return length / 2;
}
/**
*
* @Description 获取字符的ASCII码
* @param c
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return int
* @throws
*/
public static int toAscii(char c) {
try {
byte[] bytes = String.valueOf(c).getBytes("gb2312");
if (bytes.length == 1) {
return bytes[0];
} else if (bytes.length == 2) {
int hightByte = 256 + bytes[0];
int lowByte = 256 + bytes[1];
return (256 * hightByte + lowByte) - 256 * 256;
} else {
return 0;
}
} catch (Exception e) {
throw new ReflectException(e);
}
}
/**
*
* @Description 获取汉字词组拼音简写
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回小写拼音
* @throws
*/
public static String simplePinyin(String str) {
if(StringUtil.isNotEmpty(str)) {
StringBuffer sbuffer = new StringBuffer();
for(char c : str.toCharArray()) {
sbuffer.append(StringUtil.firstPinyin(String.valueOf(c)));
}
return String.valueOf(sbuffer);
} else {
return "";
}
}
/**
*
* @Description 获取汉字词组拼音简写
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回大写拼音
* @throws
*/
public static String SimplePinyin(String str) {
return simplePinyin(str).toUpperCase();
}
public static String[] PinyinKAnalyzer(String str, Integer minLength, Integer maxLength) {
List<String> list = new ArrayList<String>();
for(int i = 0; i < str.length(); i++) {
for(int n = i; n < str.length(); n++) {
Integer length = n+1-i;
if(length >= minLength && maxLength >= length) {
list.add(str.substring(i, n+1));
}
}
}
return list.toArray(new String[list.size()]);
}
/**
*
* @Description 获取中文字符串的全拼
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回小写拼音
* @throws
*/
public static String fullPinyin(String src) {
char[] t1 = null;
t1 = src.toCharArray();
String[] t2 = new String[t1.length];
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
String t4 = "";
int t0 = t1.length;
try {
for (int i = 0; i < t0; i++) {
if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
t4 += t2[0];
} else {
t4 += java.lang.Character.toString(t1[i]);
}
}
return t4;
} catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
}
return t4;
}
/**
*
* @Description 获取中文字符串的全拼
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回大写拼音
* @throws
*/
public static String FullPinyin(String str) {
return fullPinyin(str).toUpperCase();
}
/**
*
* @Description 获取汉子拼音首字母
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回小写首拼音字母
* @throws
*/
public static String firstPinyin(String str) {
try {
return String.valueOf(fullPinyin(str).charAt(0));
} catch (Exception e) {
return "";
}
}
/**
*
* @Description 获取汉子拼音首字母
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String 返回大写首拼音字母
* @throws
*/
public static String FirstPinyin(String str) {
return firstPinyin(str).toUpperCase();
}
/**
* @throws IOException
*
* @Description 从BufferedReader对象中读取字符串或文本
* @param reader
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String read(Reader reader) throws IOException {
BufferedReader br = null;
br = new BufferedReader(reader);
StringBuffer sb = new StringBuffer();
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + System.getProperty("line.separator"));
}
return sb.toString();
}
/**
* 从输入流总读取字符串
* @param is
* @return
* @throws IOException
*/
public static String read(InputStream is) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String str = read(br);
return str;
}
/**
* 将文本写入的输出流
* @param writer
* @param text
*/
public static void write(Writer writer, String text) {
PrintWriter printWriter = new PrintWriter(writer);
printWriter.append(text);
printWriter.flush();
}
/**
*
* @Description 首字母大写
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String upperFirst(String str) {
char[] ch = str.toCharArray();
if (ch[0] >= 'a' && ch[0] <= 'z') {
ch[0] = (char) (ch[0] - 32);
}
return new String(ch);
}
/**
*
* @Description 首字母小写
* @param str
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String lowerFirst(String str) {
char[] chars = new char[1];
chars[0] = str.charAt(0);
String temp = new String(chars);
if (chars[0] >= 'A' && chars[0] <= 'Z') {
return str.replaceFirst(temp, temp.toLowerCase());
}
return str;
}
/**
*
* @Description 返回一个非空的字符串
* @param strings
* @return
* @author 曲欣亮
* @date 2016年4月26日
* @since 2016年4月26日
* @return String
* @throws
*/
public static String getNotNull(String... strings) {
for(String string : strings) {
if(string != null) {
return string;
}
}
throw new PluginException("NotNull Data is null");
}
/**
*
* @Description 返回一个非空的字符串
* @param strings
* @return
* @author 曲欣亮
* @date 2016年4月26日
* @since 2016年4月26日
* @return String
* @throws
*/
public static String getNotEmpty(String... strings) {
for(String string : strings) {
if(StringUtil.isNotEmpty(string)) {
return string;
}
}
throw new PluginException("NotEmpty Data is null");
}
/**
*
* @Description 返回一个非空的字符串
* @param strings
* @return
* @author 曲欣亮
* @date 2016年4月26日
* @since 2016年4月26日
* @return String
* @throws
*/
public static String getNotBlank(String... strings) {
for(String string : strings) {
if(StringUtil.isNotBlank(string)) {
return string;
}
}
throw new PluginException("NotBlank Data is null");
}
/**
*
* @Description 返回一个非空的字符串
* @param strings
* @return
* @author 曲欣亮
* @date 2016年4月26日
* @since 2016年4月26日
* @return String
* @throws
*/
public static String getNotUndefinedAndNull(String... strings) {
for(String string : strings) {
if(StringUtil.isNotUndefinedAndNull(string)) {
return string;
}
}
throw new PluginException("UndefinedAndNull Data is null");
}
public static String format(Object obj) {
if(obj == null) {
return null;
}
if(obj instanceof Date) {
return DateUtil.format((Date)obj);
} else {
return String.valueOf(obj);
}
}
public static String formatLength(Integer nNo, String format) {
return formatLength(String.valueOf(nNo), format);
}
public static String formatLength(Long nNo, String format) {
return formatLength(String.valueOf(nNo), format);
}
public static String formatLength(String sNo, String format) {
Integer end = (format.length() > sNo.length() ? (format.length() - sNo.length()) : 0);
return format.substring(0, end) + sNo;
}
public static String toJson(Object object) {
return GsonUtil.toJson(object);
}
public static String trim(String string, String... strs) {
String tmp = string;
for(String str : strs) {
while(tmp.startsWith(str)) {
tmp = tmp.substring(1);
}
while(tmp.endsWith(str)) {
tmp = tmp.substring(0, tmp.length() - 1);
}
}
return tmp;
}
public static String decodeBase64AsString(String base64String) {
return new String(decodeBase64String(base64String));
}
public static String encodeBase64String(String string) {
return encodeBase64String(string.getBytes());
}
public static String encodeBase64String(byte[] bytes) {
return new String(Base64.encodeBase64(bytes));
}
public static String decodeHexAsString(String hexString) {
return new String(decodeHexString(hexString));
}
public static String encodeHexString(String string) {
return encodeHexString(string.getBytes());
}
public static String encodeHexString(byte[] bytes) {
return Hex.encodeHexString(bytes);
}
public static byte[] decodeBase64String(String base64String) {
return Base64.decodeBase64(base64String);
}
public static byte[] decodeHexString(String hexString) {
try {
return Hex.decodeHex(hexString.toCharArray());
} catch (DecoderException e) {
throw new CharsetException(e);
}
}
public static String toSHA1String(String text) {
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
messageDigest.update(text.getBytes());
byte[] bytes = messageDigest.digest();
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
String shaHex = Integer.toHexString(bytes[i] & 0xFF);
if (shaHex.length() < 2) {
hexString.append(0);
}
hexString.append(shaHex);
}
return hexString.toString().toUpperCase();
} catch (Exception e) {
throw new SHA1Exception(e);
}
}
public static String toHMACSHA1String(String encryptText, String encryptKey) {
try {
SecretKey secretKey = new SecretKeySpec(encryptKey.getBytes(), "HmacSHA1");
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
byte[] bs = mac.doFinal(encryptText.getBytes());
return Base64.encodeBase64String(bs);
} catch (Exception e) {
throw new SHA1Exception(e);
}
}
public static String toMD5HexString(String text) {
try {
return StringUtil.encodeHexString(MessageDigest.getInstance("MD5").digest(text.getBytes())).toUpperCase();
} catch (Exception e) {
throw new MD5Exception(e);
}
}
public static String toMD5Base64String(String text) {
try {
return StringUtil.encodeBase64String(MessageDigest.getInstance("MD5").digest(text.getBytes()));
} catch (Exception e) {
throw new MD5Exception(e);
}
}
public static String getUid() {
return UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
}
public static String getId(Integer length, String prefix) {
if(prefix == null) {
prefix = "";
}
if(length == null) {
length = 32;
}
Integer i = length - prefix.length() - 17;
return prefix + DateUtil.format(new Date(), "yyyyMMddHHmmssSSS") + (i <= 0 ? "" : MathUtil.random(i));
}
public static String getId(String prefix) {
return getId(32, prefix);
}
public static String getId(Integer length) {
return getId(length, "");
}
public static String getId() {
return getId(32, "");
}
public static String[] search(String string, String regex) {
return StringUtil.search(string, regex, null);
}
public static String[] search(String string, String regex, Integer groupNo) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(string);
List<String> list = new ArrayList<String>();
while(matcher.find()) {
if(groupNo != null) {
list.add(matcher.group(groupNo));
} else {
list.add(matcher.group(0));
}
}
return list.toArray(new String[list.size()]);
}
public static String[] searchNumber(String string) {
List<String> numbers = new ArrayList<String>();
Pattern pattern = Pattern.compile("[\\d]+(\\.?[\\d]+)?");
Matcher matcher = pattern.matcher(string);
while(matcher.find()) {
numbers.add(matcher.group(0));
}
return numbers.toArray(new String[numbers.size()]);
}
/**
*
* @Description 从BufferedReader对象中读取字符串或文本
* @param reader
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String read(BufferedReader reader) {
try {
StringBuffer sb = new StringBuffer();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + System.getProperty("line.separator"));
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
/**
*
* @Title: doMD5Sign
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param: @param map
* @param: @return
* @return: String
* @throws
*/
public static String doMD5Sign(Map<String, String> map){
Map<String, String> compMap = new TreeMap<String, String>(
new Comparator<String>() {
public int compare(String obj1, String obj2) {
return obj1.compareTo(obj2);
}
});
for(Entry<String, String> entry : map.entrySet()){
compMap.put(entry.getKey(), entry.getValue());
}
StringBuffer sb = new StringBuffer();
for(Entry<String, String> entry : compMap.entrySet()){
sb.append("&");
sb.append(entry.getKey());
sb.append("=");
sb.append(entry.getValue());
}
String s = sb.toString().substring(1);
byte[] secretBytes = null;
try {
secretBytes = MessageDigest.getInstance("MD5").digest(s.getBytes());
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sign = Hex.encodeHexString(secretBytes).toUpperCase();
return sign;
}
public static String getRandom(int num){
return String.valueOf(Math.random()).substring(2, 2+num);
}
/**
* 获取随机字符串
* @return
*/
public static String getNonceStr() {
// 随机数
String currTime = DateUtil.format(new Date(), DateUtil.FMT_YYYYMMddHHMMSS);
// 8位日期
String strTime = currTime.substring(8, currTime.length());
// 四位随机数
String strRandom = getRandom(4) + "";
// 10位序列号,可以自行调整。
return strTime + strRandom;
}
public static final String inputStream2String(InputStream in)
throws UnsupportedEncodingException, IOException {
if (in == null)
return "";
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = in.read(b)) != -1;) {
out.append(new String(b, 0, n, "UTF-8"));
}
return out.toString();
}
/**
*
* @Description 字节数组转16进制字符串
* @param bytes
* @return
* @author 曲欣亮
* @date 2016年4月25日
* @since 2016年4月25日
* @return String
* @throws
*/
public static String bytesToHex(byte[] bytes) {
return Hex.encodeHexString(bytes);
}
/**
*
* @描述:是否是2003的excel,返回true是2003
*
*
* @参数:@param filePath 文件完整路径
*
* @参数:@return
*
* @返回值:boolean
*/
public static boolean isExcel2003(String filePath){
return filePath.matches("^.+\\.(?i)(xls)$");
}
/**
*
* @描述:是否是2007的excel,返回true是2007
*
*
* @参数:@param filePath 文件完整路径
*
* @参数:@return
*
* @返回值:boolean
*/
public static boolean isExcel2007(String filePath){
return filePath.matches("^.+\\.(?i)(xlsx)$");
}
}
package com.egolm.common.jdbc.dialect;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* 数据库工具类
*
* @author onedear
* @data:2010-10-21 下午06:12:39
*/
public class SqlServerTo {
private String root;
private String pkg_name;
private String author;
private Connection conn;
static {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (Exception e) {
e.printStackTrace();
}
}
public SqlServerTo(String root, String pkg_name, String author, String db_host, String db_name, String db_user, String db_pass) throws SQLException {
this.root = root;
this.pkg_name = pkg_name;
this.author = author;
this.conn = DriverManager.getConnection("jdbc:sqlserver://" + db_host + ";instanceName=SQLSERVER;DatabaseName=" + db_name, db_user, db_pass);
}
public void execute() {
try {
String sql = "SELECT D.name AS TABLE_NAME, 'REMARK' AS TABLE_COMMENT FROM sysobjects AS D WHERE D.XTYPE = 'U' AND D.NAME <> 'dtproperties'";
PreparedStatement pStemt = conn.prepareStatement(sql);
ResultSet set = pStemt.executeQuery();
while(set.next()) {
String name = set.getString("TABLE_NAME").trim();
String comment = set.getString("TABLE_COMMENT");
execute(name, comment);
}
conn.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public void executeFilter(String sign) {
try {
String sql = "SELECT D.name AS TABLE_NAME, 'REMARK' AS TABLE_COMMENT FROM sysobjects AS D WHERE D.XTYPE = 'U' AND D.NAME <> 'dtproperties'";
PreparedStatement pStemt = conn.prepareStatement(sql);
ResultSet set = pStemt.executeQuery();
while(set.next()) {
String name = set.getString("TABLE_NAME").trim();
if(name.contains(sign)) {
String comment = set.getString("TABLE_COMMENT");
execute(name, comment);
}
}
conn.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public void execute(String name, String comment) {
try {
ResultSet set = conn.prepareStatement("SELECT COL.NAME AS COLUMN_NAME, T.NAME AS COLUMN_TYPE, CAST(P.VALUE AS VARCHAR(999)) AS COLUMN_COMMENT, CASE WHEN EXISTS (SELECT 1 FROM dbo.sysindexes SI INNER JOIN dbo.sysindexkeys SIK ON SI.ID = SIK.ID AND SI.INDID = SIK.INDID INNER JOIN dbo.syscolumns SC ON SC.ID = SIK.ID AND SC.COLID = SIK.COLID INNER JOIN dbo.sysobjects SO ON SO.NAME = SI.NAME AND SO.XTYPE = 'PK' WHERE SC.ID = COL.ID AND SC.COLID = COL.COLID ) THEN 1 ELSE 0 END AS IS_PARAMY_KEY FROM syscolumns AS COL LEFT JOIN systypes T ON T.XUSERTYPE = COL.XTYPE LEFT JOIN sys.extended_properties P ON COL.ID = P.MAJOR_ID AND COL.COLID = P.MAJOR_ID WHERE COL.ID=OBJECT_ID('" + name + "')").executeQuery();
List<String> names = new ArrayList<String>();
List<String> types = new ArrayList<String>();
List<String> comments = new ArrayList<String>();
List<String> paramyKeys = new ArrayList<String>();
while(set.next()) {
String columnName = set.getString("COLUMN_NAME").trim();
String columnType = set.getString("COLUMN_TYPE").trim();
String columnComment = set.getString("COLUMN_COMMENT");
Integer isParamyKey = set.getInt("IS_PARAMY_KEY");
names.add(columnName);
types.add(columnType);
comments.add(columnComment);
if(isParamyKey == 1) {
paramyKeys.add(columnName);
}
}
if(!name.startsWith("sys") && !name.startsWith("SYS")) {
ReverseUtil.parseEntity(pkg_name, author, root, name, comment, paramyKeys, names, types, comments);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
package com.egolm.common.jdbc.dialect;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* 数据库工具类
*
* @author onedear
* @data:2010-10-21 下午06:12:39
*/
public class SqlServerTo {
private String root;
private String pkg_name;
private String author;
private Connection conn;
static {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (Exception e) {
e.printStackTrace();
}
}
public SqlServerTo(String root, String pkg_name, String author, String db_host, String db_name, String db_user, String db_pass) throws SQLException {
this.root = root;
this.pkg_name = pkg_name;
this.author = author;
this.conn = DriverManager.getConnection("jdbc:sqlserver://" + db_host + ";instanceName=SQLSERVER;DatabaseName=" + db_name, db_user, db_pass);
}
public void execute() {
try {
String sql = "SELECT D.name AS TABLE_NAME, 'REMARK' AS TABLE_COMMENT FROM sysobjects AS D WHERE D.XTYPE = 'U' AND D.NAME <> 'dtproperties'";
PreparedStatement pStemt = conn.prepareStatement(sql);
ResultSet set = pStemt.executeQuery();
while(set.next()) {
String name = set.getString("TABLE_NAME").trim();
String comment = set.getString("TABLE_COMMENT");
execute(name, comment);
}
conn.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public void executeView() {
try {
String sql = "SELECT TABLE_NAME , 'REMARK' AS TABLE_COMMENT FROM INFORMATION_SCHEMA.VIEWS";
PreparedStatement pStemt = conn.prepareStatement(sql);
ResultSet set = pStemt.executeQuery();
while(set.next()) {
String name = set.getString("TABLE_NAME").trim();
String comment = set.getString("TABLE_COMMENT");
execute(name, comment);
}
conn.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public void executeFilter(String sign) {
try {
String sql = "SELECT D.name AS TABLE_NAME, 'REMARK' AS TABLE_COMMENT FROM sysobjects AS D WHERE D.XTYPE = 'U' AND D.NAME <> 'dtproperties'";
PreparedStatement pStemt = conn.prepareStatement(sql);
ResultSet set = pStemt.executeQuery();
while(set.next()) {
String name = set.getString("TABLE_NAME").trim();
if(name.contains(sign)) {
String comment = set.getString("TABLE_COMMENT");
execute(name, comment);
}
}
conn.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public void execute(String name, String comment) {
try {
ResultSet set = conn.prepareStatement("SELECT COL.NAME AS COLUMN_NAME, T.NAME AS COLUMN_TYPE, CAST(P.VALUE AS VARCHAR(999)) AS COLUMN_COMMENT, CASE WHEN EXISTS (SELECT 1 FROM dbo.sysindexes SI INNER JOIN dbo.sysindexkeys SIK ON SI.ID = SIK.ID AND SI.INDID = SIK.INDID INNER JOIN dbo.syscolumns SC ON SC.ID = SIK.ID AND SC.COLID = SIK.COLID INNER JOIN dbo.sysobjects SO ON SO.NAME = SI.NAME AND SO.XTYPE = 'PK' WHERE SC.ID = COL.ID AND SC.COLID = COL.COLID ) THEN 1 ELSE 0 END AS IS_PARAMY_KEY FROM syscolumns AS COL LEFT JOIN systypes T ON T.XUSERTYPE = COL.XTYPE LEFT JOIN sys.extended_properties P ON COL.ID = P.MAJOR_ID AND COL.COLID = P.MAJOR_ID WHERE COL.ID=OBJECT_ID('" + name + "')").executeQuery();
List<String> names = new ArrayList<String>();
List<String> types = new ArrayList<String>();
List<String> comments = new ArrayList<String>();
List<String> paramyKeys = new ArrayList<String>();
while(set.next()) {
String columnName = set.getString("COLUMN_NAME").trim();
String columnType = set.getString("COLUMN_TYPE").trim();
String columnComment = set.getString("COLUMN_COMMENT");
Integer isParamyKey = set.getInt("IS_PARAMY_KEY");
names.add(columnName);
types.add(columnType);
comments.add(columnComment);
if(isParamyKey == 1) {
paramyKeys.add(columnName);
}
}
if(!name.startsWith("sys") && !name.startsWith("SYS")) {
ReverseUtil.parseEntity(pkg_name, author, root, name, comment, paramyKeys, names, types, comments);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment