1. 程式人生 > >Apache Commons工具使用

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類的功能,但