Apache Commons工具使用
1. 簡介
Apache Commons包含了很多開源的工具,用於解決平時程式設計經常會遇到的問題,減少重複勞動。
2. Commons-Lang
1) 重寫Object中的方法
一個合格的類應該重寫toString,hashCode,equals,compareTo方法,我們來看一下apache如何帶我們簡化這些操作,通過逐個引數新增從而精細控制那些引數參與比較和輸出
public class User implements Comparable<User> {
private int id;
private String userName;
public User(int id, String userName) {
this.id = id;
this.userName = userName;
}
//輸出格式為: [email protected][102,yuanda]
@Override
public String toString() {
return new ToStringBuilder(this).append(this.getId())
.append(this.getUserName()).toString();
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(this.getId())
.append(this.getUserName()).hashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj.getClass() == User.class) {
User test = (User) obj;
return new EqualsBuilder().append(this.getId(), test.getId())
.append(this.getUserName(), test.getUserName()).isEquals();
}
return false;
}
@Override
public int compareTo(User o) {
return new CompareToBuilder().append(this.getId(), o.getId())
.append(this.getUserName(), o.getUserName()).toComparison();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public static void main(String[] args) {
User u1 = new User(1, "yd");
User u2 = new User(2, "yj");
System.out.println(u1);
System.out.println(u1.hashCode());
System.out.println(u1.equals(u2));
System.out.println(u1.compareTo(u2));
}
}
2)ArrayUtils類
簡化陣列的操作
//測試ArrayUtils操作
public static void testArrayUtils() {
int[] nums1 = {1, 2, 3, 4, 6, 9};
int[] nums2 = {2, 6, 5};
int[] nums3 = {1, 2, 3, 4, 6, 9};
//兩個陣列是否相等
System.out.println(Arrays.equals(nums1, nums1)); //true
System.out.println(Arrays.equals(nums2, nums1)); //false
System.out.println(Arrays.equals(nums1, nums3)); //true
int[] nums4 = ArrayUtils.subarray(nums1, 2, 4);
System.out.println(ArrayUtils.toString(nums4, "陣列為空")); //顯示陣列的中的元素
ArrayUtils.reverse(nums2); //反轉陣列
System.out.println(ArrayUtils.toString(nums2, "陣列為空"));
System.out.println(ArrayUtils.contains(nums2, 5)); //陣列中是否包含某個元素
int[] nums5 = ArrayUtils.addAll(nums1, nums2); //合併兩個陣列
System.out.println(ArrayUtils.toString(nums5));
}
3)StringUtils類
用來操作字串
public static void testStringUtils() {
String str = "Hello World";
// isEmpty和isBlank的區別在於isEmpty不會忽略空格,
// " "對於這樣的字串isEmpty會認為不是空,
// 而isBlank會認為是空,isBlank更常用
System.out.println(StringUtils.isEmpty(str));
System.out.println(StringUtils.isBlank(str));
// strip --> 去除兩端的aa
// stripStart --> 去除開始位置的hell
// stripEnd --> 去除結尾位置的orld
System.out.println(StringUtils.strip(str, "aa"));
System.out.println(StringUtils.stripStart(str, "Hell"));
System.out.println(StringUtils.stripEnd(str, "orld"));
System.out.println(str);
// 返回字串在第三次出現A的位置
System.out.println(StringUtils.ordinalIndexOf(str, "A", 3));
// 統計第二個引數在字串中出現的次數
System.out.println(StringUtils.countMatches(str, "l"));
// 判斷字串是否全小寫或大寫
System.out.println(StringUtils.isAllLowerCase(str));
System.out.println(StringUtils.isAllUpperCase(str));
// isAlpha --> 全部由字母組成返回true
// isNumeric -->全部由數字組成返回true
// isAlphanumeric -->全部由字母或數字組成返回true
// isAlphaSpace -->全部由字母或空格組成返回true
// isWhitespace -->全部由空格組成返回true
System.out.println(StringUtils.isAlpha("sdf"));
System.out.println(StringUtils.isNumeric("12.2")); //不能包含.
System.out.println(StringUtils.isAlphanumeric("sd23fd"));
System.out.println(StringUtils.isAlphaSpace("fs ss22"));
System.out.println(StringUtils.isWhitespace(" f"));
// 首字母大寫或小寫
System.out.println(StringUtils.capitalize(str));
System.out.println(StringUtils.uncapitalize(str));
// 將字串陣列轉變為一個字串,通過","拼接,支援傳入iterator和collection
System.out.println(StringUtils.join(new String[]{"Hello", "World"}, ","));
}
4)FileUtils類
在Java當中,由於IO架構採用了裝飾器模式,以至於JavaIO操作可謂是繁雜無比,特別經常需要訪問檔案系統,操作資料夾/檔案,讀取字元流轉換成字串等操作,都是一些重複性的操作
public class TestFile {
public static final String TEST_DIRECTORY_PATH_1 = "D:/directory1";
public static final String TEST_DIRECTORY_PATH_2 = "D:/directory2";
//目錄
public static final File DIRECTORY_1 = new File(TEST_DIRECTORY_PATH_1);
public static final File DIRECTORY_2 = new File(TEST_DIRECTORY_PATH_2);
public static final String TEST_FILE_PATH_1 = "D:/directory1/1.txt";
public static final String TEST_FILE_PATH_2 = "D:/directory2/3.txt";
//檔案
public static final File FILE_1 = new File(TEST_FILE_PATH_1);
public static final File FILE_2 = new File(TEST_FILE_PATH_2);
public static final String FILE_NAME = "D:/directory1/helloworld.txt";
//對目錄和檔案的操作
public static void testFileUtils() throws IOException {
// 清空某目錄下的所有目錄,含資料夾和檔案
FileUtils.cleanDirectory(DIRECTORY_2);
// 將引數1目錄下的全部內容複製到引數2目錄
FileUtils.copyDirectory(DIRECTORY_1, DIRECTORY_2);
// 將引數1目錄整個複製到引數2目錄下
FileUtils.copyDirectoryToDirectory(DIRECTORY_1, DIRECTORY_2);
// copy引數1檔案到引數2
FileUtils.copyFile(FILE_1, FILE_2);
// copy引數1檔案到引數2目錄下
FileUtils.copyFileToDirectory(FILE_1, DIRECTORY_2);
// 將檔案轉為InputStrem
FileUtils.openInputStream(FILE_1);
// FileUtils.openOutputStream(FILE_1);
// 讀取檔案轉為位元組陣列
//FileUtils.readFileToByteArray(FILE_1);
// 讀取檔案轉換為String型別,方便文字讀取
System.out.println(FileUtils.readFileToString(FILE_1, "UTF-8"));
// 寫字串到引數1檔案中
FileUtils.writeStringToFile(FILE_1, "test", "UTF-8");
System.out.println(FileUtils.readFileToString(FILE_1, "UTF-8"));
// 強制刪除檔案
//FileUtils.forceDelete(FILE_1);
}
//對檔名的操作
public static void testFileUtils2() {
// 獲取檔案字尾名
String extensionName = FilenameUtils.getExtension(FILE_NAME);
System.out.println(extensionName); //txt
// 獲取檔案路徑,忽略分割符 /
String fullPath1 = FilenameUtils.getFullPathNoEndSeparator(FILE_NAME);
System.out.println(fullPath1); //D:/directory1
// 獲取檔案路徑,不忽略分隔符
String fullPath2 = FilenameUtils.getFullPath(FILE_NAME);
System.out.println(fullPath2); //D:/directory1/
// 獲取檔名,不包含字尾
String baseName = FilenameUtils.getBaseName(FILE_NAME);
System.out.println(baseName); //helloworld
// 獲取檔名,含字尾
String name = FilenameUtils.getName(FILE_NAME);
System.out.println(name); //helloworld.txt
// 獲取碟符
String prefix = FilenameUtils.getPrefix(FILE_NAME);
System.out.println(prefix); //D:/
// 萬用字元匹配
Boolean isMatch = FilenameUtils.wildcardMatch(FILE_NAME, "D:/directory1*");
System.out.println(isMatch); //true
}
public static void main(String[] args) throws IOException {
testFileUtils();
testFileUtils2();
}
}
其他的等具體使用到了再新增….
相關推薦
Apache Commons 工具類介紹及使用
Apache Commons包含了很多開源的工具,用於解決平時程式設計經常會遇到的問題,減少重複勞動。 元件 功能介紹 BeanUtils 提供了對於JavaBean進行各種操作,
Apache Commons 工具類介紹
//官方示例 public class PoolingDataSources { public static void main(String[] args) { System.out.println("載入jdbc驅動");
Apache Commons工具集簡介
轉自:http://zhoualine.iteye.com/blog/1770014 Apache Commons包含了很多開源的工具,用於解決平時程式設計經常會遇到的問題,減少重複勞動。下面是我這幾年做開發過程中自己用過的工具類做簡單介紹。 元件 功能介紹 BeanUtils 提供了對於
apache commons 工具包
常用校驗器(靜態方法),包括:字串是否為空或者為 null ,字串是否為 byte 。是否為信用卡,是否為日期(根據模板),是否為浮點數,是否為電郵,是否為雙精數,是否在數值範圍(型別:浮點,雙精,整,長整,端整,位元組),是否為 URL ,是否符合正則表示式,字串是否超長,數值是否超過指定值,字串是否過短,
Apache Commons工具使用
1. 簡介 Apache Commons包含了很多開源的工具,用於解決平時程式設計經常會遇到的問題,減少重複勞動。 2. Commons-Lang 1) 重寫Object中的方法 一個合格的類應該重寫toString,hashCode,equal
Apache Commons工具包
BeanUtils Commons-BeanUtils 提供對 Java 反射和自省API的包裝 Betwixt Betwixt提供將 JavaBean 對映至 XML 文件,以及相反對映的服務. Chain Chain 提供實現組織複雜的處理
Apache commons(Java常用工具包)簡介
機制 encode 解析 help IT PE tom base cit Apache Commons是一個非常有用的工具包,解決各種實際的通用問題,下面是一個簡述表,詳細信息訪問http://jakarta.apache.org/commons/index.html Be
apache commons常用工具類
1.有些情況下,Arrays滿足不到你對陣列的操作?不要緊,ArrayUtils幫你 ArrayUtils public class TestMain { public static void main(String[]
org.apache.commons.io包中的FileUtils檔案工具類詳細介紹
FileUtils類的應用 寫入一個檔案; 從檔案中讀取; 建立一個資料夾,包括資料夾; 複製檔案和資料夾; 刪除檔案和資料夾; 從URL地址中獲取檔案; 通過檔案過濾器和副檔名列出檔案和資料夾; 比較檔案內容; 檔案最後的修改時間;
使用org apache commons io FileUtils IOUtils 工具類操作檔案
File src = new File("G:/2012/portal/login.jsp");File tar = new File("G:/2012/portal/loginZs.jsp");File tarDir = new File("G:/2012/portal/ce
commons-compress(apache壓縮工具包)
一、新增壓縮檔案: package aaaaa.my.test.cmdoption; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.io.PrintWrit
org.apache.commons.commons-lang3工具類(一)
本文只是簡單的介紹了commons-lang3中的SystemUtils、StringUtils、ArrayUtils這三個工具類中常用的方法,我已經例舉了很多方法。commons-lang3中可以讓我們寫的程式碼更加的優雅、提供開發效率,最
org.apache.commons.lang3.StringUtils工具類常用方法
在開發中,Apache 的 StringUtils 工具類有許多方法比 jdk 實現的方便許多。所有整理了幾個常用的: import org.apache.commons.lang3.StringUtils; public class StringUtilsTest {
Apache Commons包 StringUtils工具類深入整理
字串是在程式開發中最常見的,Apache Commons開源專案在org.apache.commons.lang3包下提供了StringUtils工具類,該類相當於是對jdk自帶的String類的增強,主要做了幾方面的處理: 1.核心設計理念就是對於null的進行內部處理,使用時不再
輕量級高效能jdbc封裝工具 Apache Commons DbUtils 1.6
因為自己做專案的時候剛好在尋找一款輕量級的資料庫操作框架,不同於hibernate,mybatis這麼大型,希望能使用的簡單一點,所以發現了這款工具,在這裡mark一下,方便自己以後使用時檢視。 前言 關於Apache的DbUtils中介軟體或許瞭解的人並不多,大部分開發人員在生成環境中更多的是依靠H
學習Apache commons-beanutils工具類
1、前言 初學java時,使用過beanUtils封裝javaben引數,使用框架之後,由框架自動封裝。慢慢淡忘了這個工具類,今天來學習學習! 2、匯入依賴 <dependency> <groupId>commons-beanutils</groupI
日期工具類 DateUtils(繼承org.apache.commons.lang.time.DateUtils類)
/** * */ package com.dsj.gdbd.utils.web; import org.apache.commons.lang3.time.DateFormatUtils; import java.text.ParseException; import java.
Java基於apache.commons.lang的日期工具類簡單封裝
package cn.lettleprincess.util; import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util
使用org.apache.commons.io.FileUtils,IOUtils;工具類操作檔案
Commons IO是apache的一個開源的工具包,封裝了IO操作的相關類,使用Commons IO可以很方便的讀寫檔案, FileUtils 中提供了許多設計檔案操作的 已封裝好的方法。 IOUtils 則是提供了讀寫檔案的方法。 File s
Bag集合工具類(apache-commons-collections3.2工具包)在java中的使用
Bag 是在 org.apache.commons.collections 包中定義的介面 ,也是集合的一種擴充工具類,當然結合用JDK中的map類進行相應的邏輯處理,也能實現Bag類的功能,但