源碼和jar見:https://github.com/evil0ps/utils
#Java Utils --- 封裝了一些經常使用Java操做方法,便於重複開發利用. 另外但願身爲Java牛牛的大家一塊兒測試和完善,歡迎入羣263641914 一塊兒封裝和完成經常使用的Java代碼。 節約擼碼時間以方便有更多的時間去把妹子~ #開發環境 Win7x64 JDK1.7 IDEA14 #項目結構 │ README.md │ utils.iml │ ├─.idea │ ├─conf │ configFTP.properties │ ftp.properties │ ├─Junit#測試類 │ │ Test.properties │ │ │ └─evilp0s │ │ CharsetTest.java │ │ DateUtilTest.java │ │ DateUtilThreadSafeTest.java │ │ EmailUtilTest.java │ │ FilePathUtilTest.java │ │ FileUtilTest.java │ │ PrintUtilTest.java │ │ ProUtilTest.java │ │ RandomUtilTest.java │ │ RegUtilTest.java │ │ SecUtilTest.java │ │ StringUtilTest.java │ │ SupportTest.java │ │ SysUtilTest.java │ │ ZIPUtilTest.java │ │ │ └─algorithmImpl │ FileEncodingUtilTest.java │ FileImplTest.java │ FileTypeImplTest.java │ ├─lib#須要的Jar │ ├─out#相應的Jar │ ├─artifacts │ │ └─evilp0s_util │ │ evilp0s-util.jar │ └─src └─evilp0s │ CharsetUtil.java #字符串相關的工具類 │ ClassUtil.java #Java Class與反射相關的一些工具類 │ ChinesUtil.java #中文相關的工具類 │ ConvertUtil.java #轉換相關的工具類 │ DateUtil.java #日期時間相關的工具類 │ EmailUtil.java #Email相關的工具類 │ FilePathUtil.java #文件路徑相關的工具類 │ FileUtil.java #文件相關的工具類 │ PrintUtil.java #打印相關的工具類 │ ProUtil.java #屬性文件相關的工具類 │ RandomUtil.java #隨機操做的相關的工具類 │ RegUtil.java #正則相關的工具類 │ SecUtil.java #安全相關的工具類 │ StreamUtil.java #Stream相關的工具類 │ StringUtil.java #字符串相關的工具類 │ SysUtil.java #系統相關的工具類 │ ValidUtil.java #字符串相關的工具類 │ WebUtil.java #Web相關的工具類 │ ZIPUtil.java #zip相關的工具類 │ ├─algorithmImpl#一些算法的實現細節 │ cpDetector.java │ FileEncodingUtil.java │ FileImpl.java │ FileReadImpl.java │ FileTypeImpl.java │ StringImpl.java │ └─FTP#FTP相關操做的封裝 FileAttr.java FTPConstant.java FTPFactory.java FTPLog.java FTPtest.java FTPUtil.java FTPUtilImpl.java FTPVo.java FunctionSet.java
#APIDOC #CharsetUtil字符串相關的工具類 ##常量字段 static java.lang.String GBK 中文超大字符集 static java.lang.String ISO_8859_1 ISO 拉丁字母表 No.1,也叫做 ISO-LATIN-1 static java.lang.String US_ASCII 7位ASCII字符,也叫做ISO646-US、Unicode字符集的基本拉丁塊 static java.lang.String UTF_16 16 位 UCS 轉換格式,字節順序由可選的字節順序標記來標識 static java.lang.String UTF_16BE 16 位 UCS 轉換格式,Big Endian(最低地址存放高位字節)字節順序 static java.lang.String UTF_16LE 16 位 UCS 轉換格式,Little-endian(最高地址存放低位字節)字節順序 static java.lang.String UTF_8 8 位 UCS 轉換格式 ##常量方法 static java.lang.String changeCharset(java.lang.String str, java.lang.String newCharset) 字符串編碼轉換的實現方法 static java.lang.String changeCharset(java.lang.String str, java.lang.String oldCharset, java.lang.String newCharset) 字符串編碼轉換的實現方法 static java.lang.String toASCII(java.lang.String str) 將字符編碼轉換成US-ASCII碼 static java.lang.String toGBK(java.lang.String str) 將字符編碼轉換成GBK碼 static java.lang.String toISO_8859_1(java.lang.String str) 將字符編碼轉換成ISO-8859-1碼 static java.lang.String toUTF_16(java.lang.String str) 將字符編碼轉換成UTF-16碼 static java.lang.String toUTF_16BE(java.lang.String str) 將字符編碼轉換成UTF-16BE碼 static java.lang.String toUTF_16LE(java.lang.String str) 將字符編碼轉換成UTF-16LE碼 static java.lang.String toUTF_8(java.lang.String str) 將字符編碼轉換成UTF-8碼 #ClassUtil-Class與反射相關的一些工具類 ##常量方法 static java.util.List<java.lang.String> getClassName(java.lang.String packageName, boolean childPackage) static java.lang.String[] getField(java.lang.String className) 獲取指定類的所有屬性字段 static java.lang.String[] getMethod(java.lang.String className) 獲取對象的所有方法 static void getter(java.lang.Object obj, java.lang.String att) 調用對象的getter方法 static java.lang.String initStr(java.lang.String old) java.lang.Class loadClass(java.lang.String className) 加載指定的類 static <T> T propertiesCopy(java.lang.Object obj, java.lang.Class<T> type) 同名屬性值複製 將對象obj內屬性名同類型T內容有同名屬性的值複製到類型T中,並返回一個類型T的對象 static <T> T propertiesCopyIgnore(java.lang.Object obj, java.lang.Class<T> type) 同名屬性值複製(忽略大小寫) 將對象obj內屬性名同類型T內容有同名屬性的值複製到類型T中,並返回一個類型T的對象 static <T> T propertiesCopyIgnoreFilter(java.lang.Object obj, java.lang.Class<T> type, java.lang.String IgnoreStr) 同名屬性值複製(比較時忽略字符IgnoreStr的內容) 將對象obj內屬性名同類型T內容有同名屬性的值複製到類型T中,並返回一個類型T的對象 static void setter(java.lang.Object obj, java.lang.String att, java.lang.Object value, java.lang.Class<?> type) 調用對象的setter方法 #ChinesUtil中文相關的工具類 ##常量方法 static java.lang.String getFirstSpell(java.lang.String chinese) 獲取漢字串拼音首字母,英文字符不變 static java.lang.String getFullSpell(java.lang.String chinese) 獲取漢字串拼音,英文字符不變 static java.lang.String getPingYin(java.lang.String inputString) 將字符串中的中文轉化爲拼音,其餘字符不變 static boolean isChinese(java.lang.String strName) static boolean isChineseByName(java.lang.String str) static boolean isChineseByREG(java.lang.String str) static void main(java.lang.String[] args) #ConvertUtil轉換相關的工具類 ##常量方法 static int bytesToInt(byte[] bytes) static long byteToLong(byte[] b) static short byteToShort(byte[] b) static byte[] intToByte(int i) static byte[] longToByte(long number) static byte[] shortToByte(short number) #DateUtil日期時間相關的工具類 ##常量方法 static java.util.Date calculate(java.util.Date date, int second, java.lang.String timeBurst) 時間Date在時間段(例如天天的08:00-18:00)上增長或減去second秒 static java.util.Date calculate(java.lang.String date, int second, java.lang.String timeBurst) 時間Date在時間段(例如天天的08:00-18:00)上增長或減去second秒 static java.lang.String Date() 獲取當前的日期 static java.lang.String Date(java.util.Date date) 將指定的時間格式化成出返回 static java.util.Date Date(java.lang.String dateStr) 將指定的字符串解析爲時間類型 static java.lang.String DateTime() 獲取當前日期時間 static java.lang.String DateTime(java.util.Date date) 將指定的時間格式化成出返回 static java.util.Date DateTime(java.lang.String datestr) 將指定的字符串解析爲時間類型 static java.util.Date day(java.util.Date date, int day) 在指定的時間上加或減去幾天 static java.util.Date day(int day) 在當前時間的基礎上加或減去幾天 static java.util.Date hour(java.util.Date date, float hour) 在制定的時間上加或減去幾小時-支持浮點數 static java.util.Date hour(float hour) 在當前時間的基礎上加或減去幾小時-支持浮點數 static boolean isDate(java.lang.String date) 判斷字符串是否爲日期字符串 static java.util.Date Minute(java.util.Date date, int minute) 在制定的時間上加或減去幾分鐘 static java.util.Date Minute(int minute) 在當前時間的基礎上加或減去幾分鐘 static java.util.Date month(java.util.Date date, int month) 在指定的時間上加或減去幾月 static java.util.Date month(int month) 在當前時間的基礎上加或減去幾月 static int subDay(java.util.Date startTime, java.util.Date endTime) 獲取倆個時間以前的相隔的天數 static int subDay(java.lang.String startTime, java.lang.String endTime) 獲取倆個時間以前的相隔的天數 static long subtimeBurst(java.util.Date startDate, java.util.Date endDate, java.lang.String timeBurst) 返回倆個時間在時間段(例如天天的08:00-18:00)的時長-單位秒 static long subtimeBurst(java.lang.String startDate, java.lang.String endDate, java.lang.String timeBurst) 返回倆個時間在時間段(例如天天的08:00-18:00)的時長-單位秒 static long Subtract(java.util.Date date1, java.util.Date date2) 時間date1和date2的時間差-單位秒 static long Subtract(java.lang.String date1, java.lang.String date2) 時間date1和date2的時間差-單位秒 static java.lang.String SubtractDate(java.lang.String date1, java.lang.String date2) 獲取倆個時間的查結果用時秒錶示 static int SubtractDay(java.util.Date date1, java.util.Date date2) 時間date1和date2的時間差-單位天 static int SubtractDay(java.lang.String date1, java.lang.String date2) 時間date1和date2的時間差-單位天 static int SubtractHour(java.util.Date date1, java.util.Date date2) 時間date1和date2的時間差-單位小時 static int SubtractHour(java.lang.String date1, java.lang.String date2) 時間date1和date2的時間差-單位小時 static int SubtractMinute(java.util.Date date1, java.util.Date date2) 時間date1和date2的時間差-單位分鐘 static int SubtractMinute(java.lang.String date1, java.lang.String date2) 時間date1和date2的時間差 -單位分鐘 static int SubtractMonth(java.util.Date date1, java.util.Date date2) 時間date1和date2的時間差-單位月 static int SubtractMonth(java.lang.String date1, java.lang.String date2) 時間date1和date2的時間差-單位月 static java.lang.String SubtractTime(java.lang.String date1, java.lang.String date2) 獲取倆個時間的查結果用時秒錶示 static int SubtractYear(java.util.Date date1, java.util.Date date2) 時間date1和date2的時間差-單位年 static int SubtractYear(java.lang.String date1, java.lang.String date2) 時間date1和date2的時間差-單位年 static java.lang.String Time() 獲取當前的時間 static java.lang.String Time(java.util.Date date) 講指定的時間格式化成出返回 static java.util.Date Time(java.lang.String dateStr) 將指定的字符串解析爲時間類型 static java.util.Date year(java.util.Date date, int year) 在指定的時間上加或減去幾年 static java.util.Date year(int year) 在當前時間的基礎上加或減去year年 #EmailUtilEmail相關的工具類 ##常量方法 void doSendHtmlEmail(java.lang.String subject, java.lang.String sendHtml, java.lang.String receiveUser) 發送郵件 void doSendHtmlEmail(java.lang.String subject, java.lang.String sendHtml, java.lang.String receiveUser, java.io.File attachment) 發送郵件 #FilePathUtil文件路徑相關的工具類 ##常量方法 static java.lang.String commandPath(java.lang.String file) 返回一個通用的文件路徑 static java.lang.String getParentPath(java.lang.String file) 返回相一個目錄的對於自己的相對父目錄 #FileUtil文件相關的工具類 ##常量方法 static boolean appendLine(java.io.File file, java.lang.String str) 在文件末尾追加一行 static boolean cleanFile(java.io.File file) 快速清空一個超大的文件 static boolean copy(java.io.File file, java.lang.String targetFile) 複製文件 經過該方式複製文件文件越大速度越是明顯 static boolean copy(java.lang.String resourcePath, java.lang.String targetPath) 複製文件 static void copyDir(java.io.File filePath, java.lang.String targetPath) 複製目錄 static void copyDir(java.lang.String filePath, java.lang.String targetPath) 複製目錄 static int countLines(java.io.File file) 獲取文件的行數 static java.lang.String cpdetector(java.io.File file) 獲取文件的編碼(cpDetector)探測 static boolean createFiles(java.lang.String filePaht) 建立文件支持多級目錄 static void createPaths(java.lang.String paths) 建立多級目錄 static boolean deleteBigFile(java.io.File file) 快速的刪除超大的文件 static boolean deleteDir(java.io.File file) 刪除一個目錄 static boolean deleteFile(java.io.File file) 刪除一個文件 static java.lang.String FileType(java.io.File file) 獲取文件的類型 static java.lang.String hash(java.io.File file) 獲取文件的Hash static java.util.List<java.lang.String> Lines(java.io.File file) 以列表的方式獲取文件的全部行 static java.util.List<java.lang.String> Lines(java.io.File file, int lines) 以列表的方式獲取文件的指定的行數數據 static java.util.List<java.io.File> listFile(java.io.File path) 羅列指定路徑下的所有文件 static java.util.List<java.io.File> listFile(java.lang.String path) 羅列指定路徑下的所有文件 static java.util.List<java.io.File> listFileAll(java.io.File path) 羅列指定路徑下的所有文件包括文件夾 static java.util.List<java.io.File> listFileFilter(java.io.File dirPath, java.lang.String postfixs) 獲取指定目錄下的特色文件,經過後綴名過濾 static java.lang.String MimeType(java.lang.String file) 獲取文件的Mime類型 static java.util.Date modifyTime(java.io.File file) 獲取文件最後的修改時間 static java.util.List<java.io.File> searchFile(java.io.File dirPath, java.lang.String fileName) 在指定的目錄下搜尋文個文件 static java.util.List<java.io.File> searchFileReg(java.io.File dirPath, java.lang.String reg) 查找符合正則表達式reg的的文件 static java.lang.String SimpleEncoding(java.lang.String file) 利用簡單的文件頭字節特徵探測文件編碼 #PrintUtil打印相關的工具類 ##常量方法 static void print(java.util.Enumeration enums) 遍歷打印Enumeration static void print(java.util.List<?> list) 遍歷打印遍歷List集合 static void print(java.util.Map map) 遍歷打印Map集合 static void print(java.lang.String str) static void println(java.lang.Object obj) static void println(java.lang.String str) #ProUtil屬性文件相關的工具類 ##常量方法 static java.lang.String GetAllProperties(java.lang.String filePath) 讀取Properties的所有信息 static java.lang.String GetValueByKey(java.lang.String filePath, java.lang.String key) 根據Key讀取Value static java.lang.String key(java.lang.String key) static void WriteProperties(java.lang.String filePath, java.lang.String pKey, java.lang.String pValue) 寫入Properties信息 #RandomUtil隨機操做的相關的工具類 ##常量方法 static int getNotSimple(int[] param, int len) 每次生成的len位數都不相同 static java.lang.String LowerString(int length) 返回一個定長的隨機純大寫字母字符串(只包含大小寫字母) static java.lang.String MixString(int length) 返回一個定長的隨機純字母字符串(只包含大小寫字母) static java.lang.String number(int length) static java.lang.String String(int length) 返回一個定長的隨機字符串(只包含大小寫字母、數字) static java.lang.String toFixdLengthString(int num, int fixdlenth) 根據數字生成一個定長的字符串,長度不夠前面補0 static java.lang.String toFixdLengthString(long num, int fixdlenth) 根據數字生成一個定長的字符串,長度不夠前面補0 static java.lang.String UpperString(int length) 返回一個定長的隨機純小寫字母字符串(只包含大小寫字母) static java.lang.String ZeroString(int length) 生成一個定長的純0字符串 #RegUtil正則相關的工具類 ##常量方法 static boolean isMatche(java.lang.String str, java.lang.String reg) 判斷字符串str是否符合正則表達式reg #SecUtil安全相關的工具類 ##常量方法 static java.lang.String FileMD5(java.io.File file) static java.lang.String md5(java.lang.String password) #StreamUtil-Stream相關的工具類 ##常量方法 static java.io.InputStream byte2InputStream(byte[] b) static byte[] inputStream2Byte(java.io.InputStream inStream) static byte[] stream2Byte(java.io.InputStream is) void streamSaveAsFile(java.io.InputStream is, java.io.File outfile) 將流另存爲文件 static java.lang.String streamToString(java.io.InputStream in) Read an input stream into a string #StringUtil字符串相關的工具類 ##常量方法 static int ChineseLength(java.lang.String str) 獲取一個字符串中中文字符的個數 static int countSubStr(java.lang.String string, java.lang.String str) 獲取字符串str在String中出現的次數 static int countSubStrReg(java.lang.String string, java.lang.String reg) 獲取符合reg正則表達式的字符串在String中出現的此時 java.lang.String cpDetector(java.lang.String str) 獲取字符串的編碼 static java.lang.String formatFloat(float f, java.lang.String format) 格式化一個float static java.lang.String full2Half(java.lang.String str) 全角字符變半角字符 static java.lang.String GBToUnicode(java.lang.String input) GBK轉換成Unicode字符集 static java.lang.String getHideEmailPrefix(java.lang.String email) 隱藏郵件地址前綴。 static java.lang.String getLimitLengthString(java.lang.String str, int len, java.lang.String symbol) 截取字符串 超出的字符用symbol代替 static int getStringLen(java.lang.String SrcStr) 取得字符串的實際長度(考慮了漢字的狀況) static java.lang.String html(java.lang.String content) HTML標籤轉義方法 —— java代碼庫 static boolean isABC(java.lang.String src) 判斷是否純字母組合 static boolean isChinese(char c) 判斷是不是中文 static boolean isChinese(java.lang.String strName) 完整的判斷中文漢字和符號 static boolean isEmail(java.lang.String email) static boolean isEmpty(java.lang.String s) 判斷是不是空字符串 null和"" 都返回 true static boolean isFloatNumeric(java.lang.String src) 判斷是否浮點數字表示 static boolean isIn(java.lang.String substring, java.lang.String[] source) 判斷字符串數組中是否包含某字符串元素 static boolean isInteger(java.lang.String str) static boolean isMessyCode(java.lang.String strName) 判斷是不是亂碼 static boolean isNumeric(java.lang.String src) 判斷是否數字表示 static boolean isNumericString(java.lang.String src) 判斷是否數字表示 static java.lang.String joinString(java.util.List array, java.lang.String symbol) 把string array or list用給定的符號symbol鏈接成一個字符串 static java.lang.String joinString(java.lang.String[] array, java.lang.String symbol) 把string array or list用給定的符號symbol鏈接成一個字符串 static java.lang.String left(java.lang.String input, int count) 截取字符串左側指定長度的字符串 static java.lang.String listToStringSlipStr(java.util.List list, java.lang.String slipStr) 將list 用傳入的分隔符組裝爲String static java.lang.String middle(java.lang.String input, int index, int count) 從指定位置開始截取指定長度的字符串 static java.util.Map<java.lang.String,java.lang.String> parseQuery(java.lang.String query, char split1, char split2, java.lang.String dupLink) 解析字符串返回map鍵值對(例:a=1&b=2 => a=1,b=2) static java.util.List<java.lang.String> parseString2ListByCustomerPattern(java.lang.String pattern, java.lang.String src) 根據指定的字符把源字符串分割成一個數組 static java.lang.String repeat(java.lang.String src, int num) repeat - 經過源字符串重複生成N次組成新的字符串。 static java.lang.String replaceAll(java.lang.String s, java.lang.String sf, java.lang.String sb) 存文本替換 static java.lang.String replaceBlank(java.lang.String str) 頁面中去除字符串中的空格、回車、換行符、製表符 static java.lang.String replaceBracketStr(java.lang.String str) 全角括號轉爲半角 static boolean requals(java.lang.String str1, java.lang.String str2) static java.lang.String right(java.lang.String input, int count) 截取字符串右側指定長度的字符串 static double SimilarDegree(java.lang.String str1, java.lang.String str2) 字符串類似度比較(速度較快) static double SimilarityRatio(java.lang.String str1, java.lang.String str2) 字符串類似度比較(速度較快) java.lang.String SimpleEncoding(java.lang.String str) 獲取字符串的編碼 static java.lang.String string2Unicode(java.lang.String string) static java.lang.String subStringNotEncode(java.lang.String subject, int size) 講字符串截取到指定長度size+...的形式 static java.lang.String subStrNotEncode(java.lang.String subject, int size) 截取字符,不轉碼 static java.lang.String trimPunct(java.lang.String str) 刪除全部的標點符號 static java.lang.String unicode2String(java.lang.String unicode) static java.lang.String UnicodeToGB(java.lang.String input) Unicode轉換成GBK字符集 #SysUtil系統相關的工具類 ##常量字段 static java.lang.String STR_HOSTNAME static java.lang.String STR_IP #ValidUtil字符串相關的工具類 ##常量方法 static boolean isValid(java.util.Collection col) 判斷集合的有效性 static boolean isValid(java.lang.Object obj) 判斷一個對象是否爲空 static boolean isValid(java.lang.Object[] arr) 判斷數組是否有效 static boolean isValid(java.lang.String src) 判斷字符串有效性 #WebUtilWeb相關的工具類 ##常量方法 static java.lang.String escape(java.lang.String src) static java.lang.String getParamValue(java.lang.String url, java.lang.String paramName) static void main(java.lang.String[] args) static void print(javax.servlet.http.HttpServletRequest request) static java.lang.String removeParam(java.lang.String url, java.lang.String... paramNames) static java.lang.String removeParam(java.lang.String url, java.lang.String paramName) static java.lang.String setParam(java.lang.String url, java.lang.String paramName, java.lang.String paramValue) static java.lang.String unescape(java.lang.String src) static java.lang.String urlJoin(java.net.URL url, java.lang.String locationHeader) #ZIPUtil-zip相關的工具類 ##常量方法 static void deCompress(java.io.File file, java.lang.String dest) 文檔壓縮 static void unCompress(java.io.File source, java.lang.String path) 文檔解壓 static void zipFile(java.io.File inFile, java.util.zip.ZipOutputStream zos, java.lang.String dir)