当前位置: 首页 > news >正文

网站半年了 没有流量网站开发团队成员

网站半年了 没有流量,网站开发团队成员,建购物网站 资质,祖庙网站开发文章目录 Apache Commons工具类库分类- commons-lang3字符串工具#xff1a;StringUtils日期工具#xff1a;DateUtils数值工具#xff1a;NumberUtils对象工具#xff1a;ObjectUtils数组工具#xff1a;ArrayUtils异常工具#xff1a;ExceptionUtils枚举工具#xff1… 文章目录 Apache Commons工具类库分类- commons-lang3字符串工具StringUtils日期工具DateUtils数值工具NumberUtils对象工具ObjectUtils数组工具ArrayUtils异常工具ExceptionUtils枚举工具EnumUtils字符串随机数工具RandomStringUtils - commons-io文件工具FileUtilsI/O工具IOUtils文件名工具FilenameUtils - commons-pool2对象池核心组件 - commons-codecBase64编解码Base64URL编解码URLCodec十六进制编解码Hex加密工具DigestUtils - commons-collections4集合操作集合扩展高效实现装饰器模式迭代器和迭代器转换器和变形器额外的数据结构 - commons-math3- commons-compress常见压缩解压 - commons-netFTPSMTPPOP3IMAP - commons-csvCSV读取写入 - commons-configuration2- commons-text单词处理工具WordUtils大小写转换工具CaseUtils转义工具StringEscapeUtils Apache Commons Apache Commons 是一个开源软件项目旨在为 Java 开发人员提供常用的工具类和组件。它提供了很多可重复使用的函数库涵盖了各种领域包括集合操作、文件操作、网络操作等。 工具类库分类 Apache Commons工具库描述commons-lang3提供了许多Java基本工具类包括字符串操作、对象操作、数组操作、类型转换等commons-io提供了一组用于读取、写入、复制、删除、移动文件和目录的工具类。还包括一些文件过滤器、文件比较器、文件监视器等实用工具commons-pool2提供了一个对象池的实现用于管理可重用对象的分配、释放和空闲状态。这对于频繁创建和销毁的对象如数据库连接池、线程池等有很大的性能优势commons-codec提供了一些用于编码和解码数据的工具类包括 Base64、Hex、URL、SHA1、MD5编码等常用编解码方式commons-collections4提供了一组扩展和增强了 Java 标准集合框架的工具类和数据结构。提供了更多功能和更丰富的选项例如扩展的集合、映射、迭代器等commons-math3提供了一组用于数学运算和统计分析的工具和算法。涵盖了线性代数、随机数生成、优化、函数拟合、概率分布等方面的功能commons-compress提供了一组用于处理压缩和解压缩文件的工具类。支持多种压缩格式如 zip、tar、bzip2、gzip 等commons-net提供了一组用于处理网络协议和网络操作的工具类包括 FTP、SMTP、POP3、IMAP、Telnet 等commons-csv提供了一组用于读取和写入 CSV逗号分隔值文件的工具类。支持不同的 CSV 格式、数据解析和生成commons-configuration2提供了一个用于加载和管理配置文件的工具库。支持多种配置文件格式和配置源提供了属性访问、配置组合和继承等功能commons-text提供了一组用于处理文本和字符串的工具和算法包括字符串操作、占位符替换、转义、相似度比较等功能 - commons-lang3 提供了许多Java基本工具类包括字符串操作、对象操作、数组操作、类型转换等。 maven依赖 dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.12.0/version /dependency常用工具类 类描述ObjectUtils对象操作工具类包括对象比较、对象判空、对象类型转换等StringUtils字符串操作工具类包括字符串判空、字符串格式化、字符串连接、字符串截取等NumberUtils数字操作工具类包括数字比较、数字范围判断、数字类型转换等ArrayUtils数组操作工具类包括数组判空、数组合并、数组查找、数组反转等DateUtils日期操作工具类包括日期格式化、日期解析、日期计算等ClassUtils类操作工具类包括类加载、类获取、类转换等EnumUtils枚举操作工具类包括枚举转换、枚举查找、枚举验证等RandomUtils随机数操作工具类包括随机数生成、随机数种子控制、随机数范围获取等SerializationUtils序列化工具类包括对象序列化、对象反序列化、对象复制等ExceptionUtils异常处理工具类包括异常重新抛出、异常堆栈信息、异常消息提取等CalendarUtils日历操作工具类包括日历获取、日历计算、日历比较等ComparableUtils比较操作工具类包括对象比较、区间判断、最值获取等BooleanUtils布尔值操作工具类包括布尔值判断、布尔值转换、布尔值逻辑计算等CharSetUtils字符集操作工具类包括字符集编解码、字符集转换、字符集判断等ClassLoaderUtils类加载操作工具类包括资源获取、类加载器管理、路径处理等EventUtils事件操作工具类包括事件监听、事件触发、事件管理等FieldUtils字段操作工具类包括字段获取、字段设置、字段验证等MemberUtils成员操作工具类包括成员获取、成员验证、成员处理等MethodUtils方法操作工具类包括方法调用、方法查找、方法验证等RegExUtils正则表达式操作工具类包括正则表达式匹配、替换、验证等SystemUtils系统信息操作工具类包括环境变量获取、系统属性获取、操作系统获取等ThreadUtils线程操作工具类包括线程休眠、线程中断、线程状态查询等Validate验证操作工具类包括参数验证、条件验证、数据验证等AnnotationUtils注解操作工具类包括注解获取、注解验证、注解解析等RandomStringUtils随机字符串操作工具类包括随机字符串生成、特殊字符控制、长度控制等ConcurrentUtils并发操作工具类包括线程池、同步、并发集合等TypeUtils类型操作工具类包括类型判断、类型转换、类型兼容性判断等InheritanceUtils继承操作工具类包括继承查询、继承验证、继承管理等 字符串工具StringUtils 方法名方法描述isEmpty(CharSequence)判断字符串是否为空长度为0或为nullisNotEmpty(CharSequence)判断字符串是否非空isAnyEmpty(CharSequence…)判断多个字符串中是否存在空字符串isNoneEmpty(CharSequence…)判断多个字符串是否全不为空isAllEmpty(CharSequence…)判断多个字符串是否全部为空isBlank(CharSequence)判断字符串是否为空白包括null、空字符串、只包含空白字符isNotBlank(CharSequence)判断字符串是否非空白isAnyBlank(CharSequence…)判断多个字符串中是否存在空白字符串isNoneBlank(CharSequence…)判断多个字符串是否全不为空白isAllBlank(CharSequence…)判断多个字符串是否全部为空白trim(String)去除字符串头尾的空白字符trimToNull(String)去除字符串头尾的空白字符并将结果为empty的字符串转为nulltrimToEmpty(String)去除字符串头尾的空白字符并将结果为null的字符串转为emptytruncate(String,int)截断字符串到指定长度如果超过长度则添加省略符strip(String)去除字符串头尾的空白字符和Unicode空格符stripToNull(String)去除字符串头尾的空白字符和Unicode空格符并将结果为empty的字符串转为nullstripToEmpty(String)去除字符串头尾的空白字符和Unicode空格符并将结果为null的字符串转为emptystripStart(String,String)去除字符串开头的指定字符序列stripEnd(String,String)去除字符串结尾的指定字符序列stripAll(String…)去除字符串数组中每个字符串的头尾空白字符stripAccents(String)去除字符串中的重音符号并替换为对应的非重音字符equals(CharSequence,CharSequence)比较两个字符串是否相等equalsIgnoreCase(CharSequence,CharSequence)忽略大小写比较两个字符串是否相等compare(String,String)比较两个字符串的大小基于Unicode编码值compareIgnoreCase(String,String)忽略大小写比较两个字符串的大小基于Unicode编码值equalsAny(CharSequence,CharSequence…)检查字符串是否与多个候选字符串中的任意一个相等equalsAnyIgnoreCase(CharSequence,CharSequence…)忽略大小写检查字符串是否与多个候选字符串中的任意一个相等indexOf(CharSequence,int)在字符串中查找子字符串的首次出现位置ordinalIndexOf(CharSequence,CharSequence,int)在字符串中查找指定子字符串的第N次出现位置indexOfIgnoreCase(CharSequence,CharSequence)在字符串中忽略大小写查找子字符串的首次出现位置lastIndexOf(CharSequence,CharSequence)在字符串中查找子字符串的最后一次出现位置lastOrdinalIndexOf(CharSequence,CharSequence,int)在字符串中查找指定子字符串的倒数第N次出现位置lastIndexOfIgnoreCase(CharSequence,CharSequence)在字符串中忽略大小写查找子字符串的最后一次出现位置contains(CharSequence,CharSequence)判断字符串是否包含指定子字符串containsIgnoreCase(CharSequence,CharSequence)忽略大小写判断字符串是否包含指定子字符串containsWhitespace(CharSequence)判断字符串是否包含空格字符indexOfAny(CharSequence,String)在字符串中查找任意字符序列的首次出现位置containsAny(CharSequence,CharSequence…)判断字符串是否包含任意字符序列indexOfAnyBut(CharSequence,char…)在字符串中查找除指定字符序列外的任意字符首次出现位置containsOnly(CharSequence,char…)判断字符串是否只包含指定字符序列中的字符containsNone(CharSequence,char…)判断字符串是否不包含指定字符序列中的字符lastIndexOfAny(CharSequence,CharSequence…)在字符串中查找任意字符序列的最后一次出现位置substring(CharSequence,int)截取字符串从指定位置到末尾left(CharSequence,int)获取字符串左边指定长度的子字符串right(CharSequence,int)获取字符串右边指定长度的子字符串mid(CharSequence,int,int)获取字符串的指定范围子字符串substringBefore(String,String)获取字符串中指定子字符串之前的部分substringAfter(String,String)获取字符串中指定子字符串之后的部分substringBeforeLast(String,String)获取字符串中最后一个指定子字符串之前的部分substringAfterLast(String,String)获取字符串中最后一个指定子字符串之后的部分substringBetween(String,String)获取两个指定子字符串之间的部分substringsBetween(String,String,String)获取所有两个指定子字符串之间的部分split(String,String)使用指定的分隔符拆分字符串成数组splitByWholeSeparator(String,String)使用指定的完整分隔符拆分字符串成数组splitByWholeSeparatorPreserveAllTokens(String,String)使用指定的完整分隔符拆分字符串成数组并保留所有的分隔符splitPreserveAllTokens(String,char)使用指定的字符拆分字符串成数组并且保留所有的分隔符splitByCharacterType(String)使用字符类型拆分字符串成数组splitByCharacterTypeCamelCase(String)使用驼峰式字符类型拆分字符串成数组join(Iterable?,String)将Iterable对象中的字符串连接成一个字符串使用指定分隔符joinWith(String,Object…)将多个字符串使用指定的分隔符连接成一个字符串deleteWhitespace(String)删除字符串中的所有空白字符removeStart(String,String)去除字符串开头的指定前缀removeStartIgnoreCase(String,String)去除字符串开头的指定前缀忽略大小写removeEnd(String,String)去除字符串结尾的指定后缀removeEndIgnoreCase(String,String)去除字符串结尾的指定后缀忽略大小写removeIgnoreCase(String,String)去除字符串中所有指定子字符串忽略大小写remove(String,String)去除字符串中所有指定子字符串replaceOnce(String,String,String)字符串替换替换第一次出现的指定子字符串replaceOnceIgnoreCase(String,String,String)忽略大小写替换第一次出现的指定子字符串replace(String,String,String)替换字符串中所有匹配的部分replaceIgnoreCase(String,String,String)忽略大小写替换字符串中所有匹配的部分overlay(String,String,int,int)在指定位置覆盖字符串的一部分chomp(String)去除字符串末尾的回车符和换行符chop(String)去除字符串末尾的最后一个字符repeat(String,int)重复指定字符串多次rightPad(String,int)将字符串右侧填充指定数量的空格字符rightPad(String,int,char)将字符串右侧填充指定数量的指定字符leftPad(String,int)将字符串左侧填充指定数量的空格字符leftPad(String,int,char)将字符串左侧填充指定数量的指定字符center(String,int)将字符串居中并用空格字符填充两侧center(String,int,char)将字符串居中并用指定字符填充两侧capitalize(String)将字符串第一个字符大写uncapitalize(String)将字符串第一个字符小写swapCase(String)大小写互换countMatches(CharSequence)统计字符串中指定子字符串的出现次数isAlpha(CharSequence)判断字符串是否只包含字母isAlphaSpace(CharSequence)判断字符串是否只包含字母和空格isAlphanumeric(CharSequence)判断字符串是否只包含字母和数字isAlphanumericSpace(CharSequence)判断字符串是否只包含字母、数字和空格isNumeric(CharSequence)判断字符串是否只包含数字isNumericSpace(CharSequence)判断字符串是否只包含数字和空格isWhitespace(CharSequence)判断字符串是否只包含空白字符isAsciiPrintable(CharSequence)判断字符串是否只包含可打印的ASCII字符isMixedCase(CharSequence)判断字符串是否既有字母又有数字defaultString(String)如果字符串为null则返回空字符串defaultString(String,String)如果字符串为null则返回指定的默认字符串defaultIfBlank(T,T)如果字符串为空白包括空字符串、只包含空白字符或null则返回指定的默认字符串defaultIfEmpty(T,T)如果字符串为空包括空字符串或null则返回指定的默认字符串wrap(String,String)在字符串两侧添加指定的前缀和后缀wrapIfMissing(String,String)如果字符串没有以指定的前缀开头或以指定的后缀结尾则在两侧添加指定的前缀和后缀unwrap(String,String)去除字符串两侧的指定前缀和后缀unwrap(String,char)去除字符串两侧的指定前缀和后缀用于多个字符串toCodePoints(CharSequence)将字符串转换为Unicode码点数组toEncodedString(byte[],Charset)将字符串转换为使用指定字符集编码的字节数组并转换为字符串 日期工具DateUtils 方法名方法描述isSameDay(Date,Date)比较两个日期对象是否在同一天isSameInstant(Date,Date)比较两个日期对象是否表示同一时刻isSameLocalTime(Calendar,Calendar)比较两个日期对象的时分秒是否相同parseDate(String,String…)将字符串解析为日期对象parseDateStrictly(String,String…)将字符串解析为日期对象如果格式不正确则抛出异常addYears(Date,int)给日期对象加上指定年数addMonths(Date,int)给日期对象加上指定月数addWeeks(Date,int)给日期对象加上指定周数addDays(Date,int)给日期对象加上指定天数addHours(Date,int)给日期对象加上指定小时数addMinutes(Date,int)给日期对象加上指定分钟数addSeconds(Date,int)给日期对象加上指定秒数addMilliseconds(Date,int)给日期对象加上指定毫秒数setYears(Date,int)设置日期对象的年份setMonths(Date,int)设置日期对象的月份setDays(Date,int)设置日期对象的天数setHours(Date,int)设置日期对象的小时数setMinutes(Date,int)设置日期对象的分钟数setSeconds(Date,int)设置日期对象的秒数setMilliseconds(Date,int)设置日期对象的毫秒数toCalendar(Date)将日期对象转换为日历对象round(Date,int)将日期对象按照指定精度进行舍入truncate(Date,int)将日期对象按照指定精度进行舍去ceiling(Date,int)将日期对象按照指定精度进行进一取整iterator(Date,int,int)返回一个日期对象的迭代器以指定精度和范围进行迭代getFragmentInDays(Date,int)获取日期对象中指定精度的片段以天为单位getFragmentInMilliseconds(Date,int)获取日期对象中指定精度的片段以毫秒为单位getFragmentInSeconds(Date,int)获取日期对象中指定精度的片段以秒为单位getFragmentInMinutes(Date,int)获取日期对象中指定精度的片段以分钟为单位getFragmentInHours(Date,int)获取日期对象中指定精度的片段以小时为单位truncatedEquals(Calendar,Calendar,int)比较两个日期对象在指定精度下是否相等truncatedCompareTo(Calendar,Calendar,int)比较两个日期对象在指定精度下的顺序 数值工具NumberUtils 方法名方法描述toInt(Stringstr)将指定的字符串转换为整数值。toInt(Stringstr,int)将指定的字符串转换为整数值为空时使用默认值toLong(Stringstr,long)将指定的字符串转换为长整数值。toLong(Stringstr)将指定的字符串转换为长整数值为空时使用默认值toFloat(Stringstr)将指定的字符串转换为单精度浮点数值。toFloat(Stringstr,float)将指定的字符串转换为单精度浮点数值为空时使用默认值toDouble(Stringstr)将指定的字符串转换为双精度浮点数值。toDouble(Stringstr,double)将指定的字符串转换为双精度浮点数值为空时使用默认值toByte(Stringstr)将指定的字符串转换为字节值。toByte(Stringstr,byte)将指定的字符串转换为字节值为空时使用默认值toShort(Stringstr)将指定的字符串转换为短整数值。toShort(Stringstr,short)将指定的字符串转换为短整数值为空时使用默认值toScaledBigDecimal(Stringstr)将指定的字符串转换为精确浮点数BigDecimal。toScaledBigDecimal(Stringstr,int,RoundingMode)将指定的字符串转换为精确浮点数BigDecimal。可指定小数位数及舍入模式createNumber(Stringstr)将指定的字符串转换为对应的数字类型。createFloat(Stringstr)将指定的字符串转换为Float对象。createDouble(Stringstr)将指定的字符串转换为Double对象。createInteger(Stringstr)将指定的字符串转换为Integer对象。createLong(Stringstr)将指定的字符串转换为Long对象。createBigInteger(Stringstr)将指定的字符串转换为BigInteger对象。createBigDecimal(Stringstr)将指定的字符串转换为BigDecimal对象。min(long…)返回给定数字数组中的最小值。min(int…)返回给定数字数组中的最小值。min(short…)返回给定数字数组中的最小值。min(byte…)返回给定数字数组中的最小值。min(double…)返回给定数字数组中的最小值。min(float…)返回给定数字数组中的最小值。max(long…)返回给定数字数组中的最大值。max(int…)返回给定数字数组中的最大值。max(short…)返回给定数字数组中的最大值。max(byte…)返回给定数字数组中的最大值。max(double…)返回给定数字数组中的最大值。max(float…)返回给定数字数组中的最大值。compare(int,int)比较两个数字的大小。compare(long,long)比较两个数字的大小。compare(short,short)比较两个数字的大小。compare(byte,byte)比较两个数字的大小。isDigits(Stringstr)判断指定的字符串是否为数字格式。isNumber(Stringstr)判断指定的字符串是否为数字类型。isCreatable(Stringstr)判断指定的字符串是否可转换为数字。isParsable(Stringstr)判断指定的字符串是否可解析为数字。 对象工具ObjectUtils 方法名方法描述isEmpty(Object)判断指定对象是否为空。isNotEmpty(Object)判断指定对象是否不为空。defaultIfNull(T,T)如果指定对象为空则返回默认值。firstNonNull(T…)返回第一个非空的对象。anyNotNull(T…)判断给定对象数组中是否存在非空对象。allNotNull(T…)判断给定对象数组中是否所有对象均非空。notEqual(T,T)判断两个对象是否不相等。identityToString(T)返回对象的identity的字符串表示。identityToString(T,String)返回对象的identity的字符串表示可指定空对象的字符串表示。min(T…)返回给定对象数组中的最小值。max(T…)返回给定对象数组中的最大值。compare(T,T)比较两个对象的大小。compare(T,T,boolean)使用指定比较器比较两个对象的大小。median(T…)返回给定对象数组的中位数。median(ComparatorT,T…)返回给定对象数组的中位数自定义比较器mode(T…)返回给定对象数组中的众数。 数组工具ArrayUtils 方法描述toString(Object)将数组转换为字符串。toStringArray(Object[])将数组转换为字符串数组。toMap(Object[])将键数组转换为Map。toArray(T…)将集合转换为数组。clone(T[])克隆一个数组。nullToEmpty(Object[])将null数组转换为空数组。subarray(T[],int,int)获取数组的子数组。isSameLength(Object[],Object[])检查两个数组是否具有相同的长度。getLength(Object)获取数组的长度。isSameType(Object,Object)检查两个对象数组是否具有相同的类型。reverse(Object[])反转数组。reverse(Object[],int,int)反转数组,指定起始截止位置swap(Object[],int,int)交换数组中两个元素的位置。shift(Object[],int)将数组中的元素向左或向右移动。indexOf(Object[],Object)获取元素在数组中的第一个匹配位置。lastIndexOf(Object[],Object)获取元素在数组中的最后一个匹配位置。contains(Object[],Object)检查数组是否包含某元素。toPrimitive(Object)将包装类型数组转换为原始类型数组。toObject(Object)将原始类型数组转换为包装类型数组。isEmpty(Object[])检查数组是否为空。isNotEmpty(Object[])检查数组是否不为空。addAll(T[],T…)向数组中添加多个元素。add(T[],T)向数组中添加一个元素。remove(T[],int)移除数组中指定位置的元素。removeElement(T[],Object)移除数组中指定元素的第一个匹配项。removeAll(T[],int…)移除数组中的多个元素。removeElements(T[],T…)移除数组中的多个元素并保持顺序不变。isSorted(T[])检查数组是否已排序。isSorted(T[],ComparatorT)检查数组是否已排序指定比较器removeAllOccurences(T[],T)移除数组中的所有匹配项。toStringArray(Object[])将对象数组转换为字符串数组。insert(int,T[],T…)在数组中的指定位置插入元素。shuffle(Object[])随机重排数组中的元素。shuffle(Object[],int,int)随机重排数组中的元素指定起始截止位置isArrayIndexValid(T[],int)检查数组索引是否在有效范围内。 异常工具ExceptionUtils 方法描述getMessage(Throwable)返回throwable的详细消息字符串getRootCause(Throwable)返回throwable的根本原因throwablegetRootCauseMessage(Throwable)返回根throwable的详细消息字符串getRootCauseStackTrace(Throwable)获取根throwable的堆栈跟踪getStackFrames(Throwable)获取throwable的堆栈帧getStackTrace(Throwable)获取throwable的堆栈跟踪getThrowableCount(Throwable)获取throwable的可抛出对象数量getThrowableList(Throwable)获取throwable及其嵌套的可抛出对象列表getThrowables(Throwable)获取throwable及其嵌套的可抛出对象数组hasCause(Throwable)检查throwable是否有根本原因indexOfThrowable(Throwable,Class?extendsThrowable)获取指定类型的可抛出对象索引indexOfType(Throwable,Class?extendsThrowable)获取指定类型的可抛出对象索引printRootCauseStackTrace(Throwable)打印根throwable的堆栈跟踪removeCommonFrames(ListString,ListString)从第一个列表中删除与第二个列表中相同的元素rethrow(Throwable)如果throwable是Error、RuntimeException或Throwable的实例则将其重新抛出wrapAndThrow(Throwable)包装并抛出throwable 枚举工具EnumUtils 方法描述generateBitVector(Class?extendsEnum?)为给定枚举类型生成一个位向量generateBitVector(Class?extendsEnum?,Iterable?extendsEnum?)为给定枚举类型生成一个位向量generateBitVectors(ClassT)为给定枚举类型生成一组位向量generateBitVectors(ClassT,Iterable?extendsT)为给定枚举类型生成一组位向量getEnum(ClassE,String)返回指定名称的枚举常量getEnumIgnoreCase(ClassE,String)返回以不区分大小写方式匹配指定名称的枚举常量getEnumList(ClassE)返回指定枚举类型的枚举常量列表getEnumMap(ClassE)返回指定枚举类型的枚举常量映射isValidEnum(ClassE,String)检查指定名称是否是指定枚举类型的有效枚举常量isValidEnumIgnoreCase(ClassE,String)以不区分大小写方式检查指定名称是否是指定枚举类型的有效枚举常量processBitVector(ClassE,long,EnumUtils.ProcessorE)使用处理器处理位向量processBitVectors(ClassE,long,EnumUtils.ProcessorE)使用处理器处理一组位向量 字符串随机数工具RandomStringUtils 方法方法描述random(int count, String chars)生成指定长度的随机字符串可以指定字符集。random(int count, char… chars)生成指定长度的随机字符串可以指定是否包含字母和数字random(int count, boolean letters, boolean numbers)生成指定长度的随机字符串。randomAlphabetic(int count)生成指定长度的随机字母字符串。randomNumeric(int count)生成指定长度的随机数字字符串。randomAlphanumeric(int count)生成指定长度的随机字母和数字字符串。randomAscii(int count)生成指定长度的随机ASCII字符串。randomGraph(int count)生成指定长度的随机可打印图形字符字符串。randomPrint(int count)生成指定长度的随机可打印字符字符串。 - commons-io maven依赖 dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.11.0/version /dependency文件工具FileUtils 提供了一系列的文件操作方法包括复制、移动、删除、比较文件内容等。 I/O工具IOUtils 包含了一些常见的 I/O 操作方法用于简化流的打开、关闭和读写以及处理流的复制、转换等操作。 文件名工具FilenameUtils 用于处理文件名的工具类包括路径和文件名的解析、提取文件扩展名、路径合并等操作。 - commons-pool2 是一个用于管理对象池的工具库。对象池是一种常见的设计模式用于管理可重复使用的对象以减少对象的创建和销毁开销同时提高对象的利用率。Commons Pool 2 提供了一套通用的对象池实现可以用于管理任意类型的对象。如数据库连接池、线程池等。 maven依赖 dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion2.11.1/version /dependency对象池核心组件 Commons Pool2 的核心组件 GenericObjectPool通用的对象池实现是 Commons Pool 2 的核心类。它可以管理任意类型的对象并提供了一系列的配置选项如最大对象数量、最大空闲对象数量、对象生命周期管理等。 PooledObjectFactory对象工厂接口定义了对象的创建、销毁、验证等方法。每个对象池都需要实现这个接口来管理对象的生命周期。 BasePooledObjectFactory提供了一些方法的默认实现简化了自定义对象工厂的实现。 PooledObject表示被对象池管理的对象提供了对对象的状态信息和操作方法如获取对象、释放对象等。 EvictionPolicy用于定义对象池中对象的驱逐策略决定哪些对象应该被驱逐出池。 使用示例 // 自定义的对象类 class MyObject {private String name;public MyObject(String name) {this.name name;System.out.println(Creating object: name);}public void doSomething() {System.out.println(Doing something with object: name);} }// 自定义的对象工厂 class MyObjectFactory extends BasePooledObjectFactoryMyObject {Overridepublic MyObject create() throws Exception {return new MyObject(Object);}Overridepublic PooledObjectMyObject wrap(MyObject obj) {return new DefaultPooledObject(obj);} }public class CommonsPoolTest {public static void main(String[] args) throws Exception {// 创建对象工厂MyObjectFactory factory new MyObjectFactory();// 创建对象池GenericObjectPoolMyObject objectPool new GenericObjectPool(factory);// 从对象池获取对象MyObject obj1 objectPool.borrowObject();obj1.doSomething();// 归还对象到对象池objectPool.returnObject(obj1);// 再次从对象池获取对象MyObject obj2 objectPool.borrowObject();obj2.doSomething();// 关闭对象池objectPool.close();} }- commons-codec 提供了一组用于编码和解码数据的通用工具类。它支持各种常见的编码算法如 Base64、URL 编码、十六进制编码、MD5、SHA 等以及一些其他常见的编码和散列算法。 maven依赖 dependencygroupIdcommons-codec/groupIdartifactIdcommons-codec/artifactIdversion1.15/version /dependencyBase64编解码Base64 org.apache.commons.codec.binary.Base64 public static void main(String[] args) {// 原始字符串String originalString Hello, Base64!;// Base64 编码byte[] encodedBytes Base64.encodeBase64(originalString.getBytes());String encodedString new String(encodedBytes);System.out.println(Base64 编码: encodedString);// Base64 解码byte[] decodedBytes Base64.decodeBase64(encodedBytes);String decodedString new String(decodedBytes);System.out.println(Base64 解码: decodedString);}URL编解码URLCodec org.apache.commons.codec.net.URLCodec public static void main(String[] args) throws Exception {// 原始URLString originalUrl http://127.0.0.1:8888/?username哈哈;// URL 编码URLCodec codec new URLCodec();String encodedUrl codec.encode(originalUrl);System.out.println(URL 编码: encodedUrl);String decodeUrl codec.decode(encodedUrl);System.out.println(URL 解码: decodeUrl);}十六进制编解码Hex org.apache.commons.codec.binary.Hex public static void main(String[] args) throws DecoderException {// 原始字符串String originalString Hex Example;// 十六进制编码String encodedString Hex.encodeHexString(originalString.getBytes());System.out.println(十六进制编码: encodedString);// 十六进制解码byte[] decodedBytes Hex.decodeHex(encodedString);String decodedString new String(decodedBytes);System.out.println(十六进制解码: decodedString);}加密工具DigestUtils 主要方法 方法描述md2(String)计算字符串的MD2摘要并以byte数组形式返回结果md5(String)计算字符串的MD5摘要并以byte数组形式返回结果sha1(String)计算字符串的SHA-1摘要并以byte数组形式返回结果sha256(String)计算字符串的SHA-256摘要并以byte数组形式返回结果sha384(String)计算字符串的SHA-384摘要并以byte数组形式返回结果sha512(String)计算字符串的SHA-512摘要并以byte数组形式返回结果sha3_224(String)计算字符串的SHA-3-224摘要并以byte数组形式返回结果sha3_256(String)计算字符串的SHA-3-256摘要并以byte数组形式返回结果sha3_384(String)计算字符串的SHA-3-384摘要并以byte数组形式返回结果sha3_512(String)计算字符串的SHA-3-512摘要并以byte数组形式返回结果sha512_224(String)计算字符串的SHA-512/224摘要并以byte数组形式返回结果sha512_256(String)计算字符串的SHA-512/256摘要并以byte数组形式返回结果md2Hex(String)计算字符串的MD2摘要并以十六进制字符串形式返回结果md5Hex(String)计算字符串的MD5摘要并以十六进制字符串形式返回结果sha1Hex(String)计算字符串的SHA-1摘要并以十六进制字符串形式返回结果sha256Hex(String)计算字符串的SHA-256摘要并以十六进制字符串形式返回结果sha384Hex(String)计算字符串的SHA-384摘要并以十六进制字符串形式返回结果sha512Hex(String)计算字符串的SHA-512摘要并以十六进制字符串形式返回结果sha3_224Hex(String)计算字符串的SHA-3-224摘要并以十六进制字符串形式返回结果sha3_256Hex(String)计算字符串的SHA-3-256摘要并以十六进制字符串形式返回结果sha3_384Hex(String)计算字符串的SHA-3-384摘要并以十六进制字符串形式返回结果sha3_512Hex(String)计算字符串的SHA-3-512摘要并以十六进制字符串形式返回结果sha512_224Hex(String)计算字符串的SHA-512/224摘要并以十六进制字符串形式返回结果sha512_256Hex(String)计算字符串的SHA-512/256摘要并以十六进制字符串形式返回结果getMd2Digest()获取一个新的MD2MessageDigest实例getMd5Digest()获取一个新的MD5MessageDigest实例getSha1Digest()获取一个新的SHA-1MessageDigest实例getSha256Digest()获取一个新的SHA-256MessageDigest实例getSha384Digest()获取一个新的SHA-384MessageDigest实例getSha512Digest()获取一个新的SHA-512MessageDigest实例getSha3_224Digest获取一个新的SHA-3-224MessageDigest实例getSha3_256Digest获取一个新的SHA-3-256MessageDigest实例getSha3_384Digest获取一个新的SHA-3-384MessageDigest实例getSha3_512Digest获取一个新的SHA-3-512MessageDigest实例getSha512_224Digest获取一个新的SHA-512/224MessageDigest实例getSha512_256Digest获取一个新的SHA-512/256MessageDigest实例digest(MessageDigest,byte[])对字节数组进行摘要计算使用指定的MessageDigestdigest(MessageDigest,InputStream)对输入流进行摘要计算使用指定的MessageDigestdigest(MessageDigest,File)对文件进行摘要计算使用指定的MessageDigestdigestAsHex(byte[])计算byte数组摘要并以十六进制字符串的形式返回结果digestAsHex(File)计算文件摘要并以十六进制字符串的形式返回结果digestAsHex(InputStream)计算输入流摘要并以十六进制字符串的形式返回结果digestAsHex(String)计算字符串摘要并以十六进制字符串的形式返回结果 使用示例 public static void main(String[] args) {// 原始字符串String originalString Hello;// 计算MD5摘要String md5Hex DigestUtils.md5Hex(originalString);System.out.println(MD5摘要: md5Hex);// 计算SHA-256摘要String sha256Hex DigestUtils.sha256Hex(originalString);System.out.println(SHA-256摘要: sha256Hex);// 计算SHA-512摘要String sha512Hex DigestUtils.sha512Hex(originalString);System.out.println(SHA-512摘要: sha512Hex);}- commons-collections4 提供了一组扩展和增强了 Java 标准集合框架的工具类和数据结构。提供了更多功能和更丰富的选项例如扩展的集合、映射、迭代器等。 maven依赖 dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-collections4/artifactIdversion4.4/version /dependency主要功能 集合操作CollectionUtils 类包含了许多静态方法用于各种常见的集合操作如查找、过滤、转换等。 集合扩展Apache Commons Collections4 提供了一些有用的集合类如 ListUtils、SetUtils 和 MapUtils 等。这些类通过静态方法提供了一系列的集合操作如合并、交集、差集、过滤等。 高效实现Commons Collections4 提供了许多高效的集合实现比如 LinkedMap、TreeBag、FixedSizeList 等。这些实现在特定场景下可以提供更好的性能和功能。 装饰器模式Commons Collections4 还提供了一系列装饰器类用于扩展或修改现有的集合类。通过装饰器模式可以在不改变现有代码的情况下增加或修改集合的功能如 SynchronizedCollection、UnmodifiableMap 等。 迭代器和迭代器Commons Collections4 提供了许多增强的迭代器和迭代器工具类如 IteratorUtils、IterableUtils 和 EnumerationUtils 等。这些工具类可以简化集合的遍历和操作。 转换器和变形器Commons Collections4 提供了一些转换器和变形器用于在集合元素之间进行转换或变换如 TransformerUtils 和 PredicateUtils 等。这些工具类可以方便地进行元素的转换、过滤及其他操作。 额外的数据结构Commons Collections4 还提供了一些额外的数据结构如 BidiMap、MultiMap、Bag 等。这些数据结构可以满足一些特定的需求如双向映射、多值映射和可重复的元素计数等。 集合操作 CollectionUtils主要方法 集合扩展 合并两个列表 ListString list1 Arrays.asList(apple, banana); ListString list2 Arrays.asList(banana, orange); ListString mergedList ListUtils.union(list1, list2); System.out.println(Merged List: mergedList);计算两个集合的交集 SetInteger set1 new HashSet(Arrays.asList(1, 2, 3)); SetInteger set2 new HashSet(Arrays.asList(3, 4, 5)); SetInteger intersection SetUtils.intersection(set1, set2); System.out.println(Intersection: intersection);过滤Map中满足条件的条目 MapString, Integer map new HashMap(); map.put(apple, 3); map.put(banana, 2); map.put(orange, 5); MapString, Integer filteredMap MapUtils.predicatedMap(map, (key, value) - value 2); System.out.println(Filtered Map: filteredMap);高效实现 使用 LinkedMap 保持键值对的插入顺序 MapString, Integer linkedMap new LinkedMap(); linkedMap.put(apple, 3); linkedMap.put(banana, 2); linkedMap.put(orange, 5); System.out.println(Linked Map: linkedMap);使用 TreeBag 对元素进行排序和计数 BagString treeBag new TreeBag(Arrays.asList(apple, banana, banana, orange)); System.out.println(Tree Bag: treeBag);创建固定大小的列表 ListString fixedSizeList FixedSizeList.decorate(new ArrayList(Arrays.asList(apple, banana, orange))); System.out.println(Fixed Size List: fixedSizeList);装饰器模式 创建一个线程安全的集合 CollectionString synchronizedCollection SynchronizedCollection.synchronizedCollection(new ArrayList());创建一个不可修改的映射 MapString, Integer unmodifiableMap UnmodifiableMap.unmodifiableMap(new HashMap());迭代器和迭代器 使用 IteratorUtils 迭代器工具类来操作集合 ListString list Arrays.asList(apple, banana, orange); IteratorString iterator IteratorUtils.filteredIterator(list.iterator(), s - s.startsWith(a)); while (iterator.hasNext()) {System.out.println(iterator.next()); }转换器和变形器 使用 Transformer 对集合元素进行转换 ListString list Arrays.asList(apple, banana, orange); TransformerString, Integer transformer input - input.length(); CollectionInteger transformedCollection CollectionUtils.collect(list, transformer); System.out.println(Transformed Collection: transformedCollection);额外的数据结构 使用 BidiMap 进行双向映射 BidiMapString, String bidiMap new DualHashBidiMap(); bidiMap.put(apple, red); bidiMap.put(banana, yellow); System.out.println(Value for key banana: bidiMap.get(banana)); System.out.println(Key for value yellow: bidiMap.inverseBidiMap().get(yellow));使用 MultiMap 存储多个值的映射 MultiValuedMapString, String multiMap new ArrayListValuedHashMap(); multiMap.put(fruits, apple); multiMap.put(fruits, banana); System.out.println(All fruits: multiMap.get(fruits));使用 Bag 对元素进行计数 BagString bag new HashBag(Arrays.asList(apple, banana, banana, orange)); System.out.println(Count of banana: bag.getCount(banana));- commons-math3 maven依赖 dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-math3/artifactIdversion3.6.1/version /dependency- commons-compress 提供了对各种压缩格式的支持和处理。它提供了一组用于处理压缩文件和流的工具和类。 支持的压缩格式Commons Compress支持许多常见的压缩格式例如ZIP、GZIP、BZIP2、TAR等。它允许你对这些格式的文件进行压缩、解压缩和存储操作。 压缩和解压缩功能Commons Compress提供了用于压缩和解压缩文件和流的API和类。你可以使用这些类来创建、读取和写入压缩文件并对其进行解压缩操作。 支持多种压缩算法Commons Compress支持多种压缩算法包括Deflate在ZIP和GZIP中使用、BZIP2、LZMA等。它通过提供不同的压缩器和解压缩器类来处理不同的算法。 文件和目录的压缩Commons Compress允许你对单个文件或整个目录进行压缩和解压缩操作。你可以递归地压缩目录中的所有文件和子目录并选择性地包含或排除特定的文件。 流式压缩和解压缩除了处理文件和目录外Commons Compress还允许你对输入流和输出流进行压缩和解压缩操作。这使得你可以在不创建实际文件的情况下对数据进行压缩和解压缩。 注意事项 GZIP命令本身只能压缩单个文件无法直接压缩多个文件或压缩整个文件夹。要压缩多个文件或压缩整个文件夹你可以使用TAR命令结合GZIP命令来完成。 maven依赖 dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-compress/artifactIdversion1.21/version /dependency常用压缩解压方式ZIP、GZIP、TAR、TARGZ 常见压缩解压 使用工具 Slf4j public class CompressUtil {private static final int BUFFER_SIZE 4096;/*** ZIP压缩** param files 待压缩文件列表* param zipFile 压缩文件*/public static void zip(ListFile files, File zipFile) {if (zipFile.isDirectory()) {throw new IllegalArgumentException(zipFile is not a directory);}if (!zipFile.getParentFile().exists()) {zipFile.getParentFile().mkdirs();}try (ArchiveOutputStream outputStream new ArchiveStreamFactory().createArchiveOutputStream(ArchiveStreamFactory.ZIP, new FileOutputStream(zipFile))) {for (File file : files) {addEntry(outputStream, file, );}} catch (Exception e) {log.error(ZIP压缩出错, e);}}private static void addEntry(ArchiveOutputStream outputStream, File file, String basePath) throws IOException {String entryName basePath file.getName();if (file.isDirectory()) {File[] nestedFiles file.listFiles();for (File nestedFile : nestedFiles) {addEntry(outputStream, nestedFile, entryName /);}} else {ArchiveEntry entry outputStream.createArchiveEntry(file, entryName);outputStream.putArchiveEntry(entry);IOUtils.copy(new FileInputStream(file), outputStream);outputStream.closeArchiveEntry();}}/*** ZIP解压** param zipFile 解压文件* param directory 解压目录*/public static void unzip(File zipFile, File directory) {if (directory.isFile()) {throw new IllegalArgumentException(directory is not a file);}if (!directory.exists()) {directory.mkdirs();}try (ArchiveInputStream inputStream new ArchiveStreamFactory().createArchiveInputStream(new BufferedInputStream(new FileInputStream(zipFile)))) {ArchiveEntry entry;while ((entry inputStream.getNextEntry()) ! null) {if (!inputStream.canReadEntryData(entry)) continue;File currentFile new File(directory, entry.getName());if (entry.isDirectory()) {currentFile.mkdirs();} else {currentFile.getParentFile().mkdirs();try (OutputStream outputFileStream new FileOutputStream(currentFile)) {IOUtils.copy(inputStream, outputFileStream);}}}} catch (Exception e) {log.error(ZIP解压出错, e);}}/*** GZIP压缩** param file 待压缩文件* param gzipFile 压缩文件*/public static void gzip(File file, File gzipFile) {if (gzipFile.isDirectory()) {throw new IllegalArgumentException(gzipFile is not a directory);}if (!gzipFile.getParentFile().exists()) {gzipFile.getParentFile().mkdirs();}try (FileInputStream fis new FileInputStream(file);FileOutputStream fos new FileOutputStream(gzipFile);GzipCompressorOutputStream gzos new GzipCompressorOutputStream(fos)) {byte[] buffer new byte[BUFFER_SIZE];int len;while ((len fis.read(buffer)) 0) {gzos.write(buffer, 0, len);}} catch (Exception e) {log.error(GZIP压缩出错, e);}}/*** GZIP解压** param gzipFile 待解压文件* param file 解压文件*/public static void ungzip(File gzipFile, File file) {if (file.isDirectory()) {throw new IllegalArgumentException(file is not a directory);}if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}try (FileInputStream fis new FileInputStream(gzipFile);GzipCompressorInputStream gzis new GzipCompressorInputStream(fis);FileOutputStream fos new FileOutputStream(file)) {byte[] buffer new byte[BUFFER_SIZE];int len;while ((len gzis.read(buffer)) 0) {fos.write(buffer, 0, len);}} catch (Exception e) {log.error(GZIP解压出错, e);}}/*** TAR压缩** param files 待压缩文件列表* param tarFile 压缩文件*/public static void tar(ListFile files, File tarFile) {if (tarFile.isDirectory()) {throw new IllegalArgumentException(tarFile is not a directory);}if (!tarFile.getParentFile().exists()) {tarFile.getParentFile().mkdirs();}try (TarArchiveOutputStream tarOut new TarArchiveOutputStream(new FileOutputStream(tarFile))) {for (File inputFile : files) {addFileToTar(tarOut, inputFile, );}} catch (Exception e) {log.error(TAR压缩出错, e);}}/*** 将文件添加到tar压缩包中** param tarOut* param file* param parentEntryName* throws IOException*/private static void addFileToTar(TarArchiveOutputStream tarOut, File file, String parentEntryName) throws IOException {String entryName parentEntryName file.getName();TarArchiveEntry tarEntry new TarArchiveEntry(file, entryName);tarOut.putArchiveEntry(tarEntry);if (file.isFile()) {try (InputStream in new FileInputStream(file)) {IOUtils.copy(in, tarOut);}tarOut.closeArchiveEntry();} else if (file.isDirectory()) {tarOut.closeArchiveEntry();File[] children file.listFiles();if (children ! null) {for (File child : children) {addFileToTar(tarOut, child, entryName /);}}}}/*** TAR解压** param tarFile 待解压文件* param directory 解压目录*/public static void untar(File tarFile, File directory) {if (directory.isFile()) {throw new IllegalArgumentException(file is not a file);}try (TarArchiveInputStream tarIn new TarArchiveInputStream(new FileInputStream(tarFile))) {ArchiveEntry entry;while ((entry tarIn.getNextEntry()) ! null) {if (!tarIn.canReadEntryData(entry)) {continue;}File entryFile new File(directory, entry.getName());if (entry.isDirectory()) {if (!entryFile.exists()) {entryFile.mkdirs();}} else {File parent entryFile.getParentFile();if (!parent.exists()) {parent.mkdirs();}try (OutputStream out new FileOutputStream(entryFile)) {IOUtils.copy(tarIn, out);}}}} catch (Exception e) {log.error(TAR解压出错, e);}}/*** TARGZ压缩** param files 待压缩文件列表* param targzFile 压缩文件*/public static void targz(ListFile files, File targzFile) {if (targzFile.isDirectory()) {throw new IllegalArgumentException(targzFile is not a directory);}if (!targzFile.getParentFile().exists()) {targzFile.getParentFile().mkdirs();}try (FileOutputStream fos new FileOutputStream(targzFile);BufferedOutputStream bos new BufferedOutputStream(fos);GzipCompressorOutputStream gzos new GzipCompressorOutputStream(bos);TarArchiveOutputStream tarOutput new TarArchiveOutputStream(gzos)) {for (File file : files) {addFileToTar(tarOutput, file, );}tarOutput.finish();} catch (Exception e) {log.error(TARGZ压缩出错, e);}}/*** TARGZ解压** param targzFile 待解压文件* param directory 解压目录*/public static void untargz(File targzFile, File directory) {if (directory.isFile()) {throw new IllegalArgumentException(directory is not a file);}try (FileInputStream fis new FileInputStream(targzFile);BufferedInputStream bis new BufferedInputStream(fis);GzipCompressorInputStream gzis new GzipCompressorInputStream(bis);TarArchiveInputStream tarInput new TarArchiveInputStream(gzis)) {TarArchiveEntry entry;while ((entry tarInput.getNextTarEntry()) ! null) {File outputFile new File(directory, entry.getName());if (entry.isDirectory()) {if (!outputFile.exists()) {outputFile.mkdirs();}} else {outputFile.getParentFile().mkdirs();try (FileOutputStream fos new FileOutputStream(outputFile);BufferedOutputStream bos new BufferedOutputStream(fos)) {byte[] buffer new byte[BUFFER_SIZE];int bytesRead;while ((bytesRead tarInput.read(buffer)) ! -1) {bos.write(buffer, 0, bytesRead);}}}}} catch (Exception e) {log.error(TARGZ解压出错, e);}}public static void main(String[] args) {ListFile sourceFiles Arrays.asList(new File(E:\\test\\a.txt), new File(E:\\test\\b.txt), new File(E:\\test\\aaa));File compressFile;File decompresDir;File sourceFile;File decompresFile;// zipcompressFile new File(E:\\test\\zip\\zip\\hhhh.zip);CompressUtil.zip(sourceFiles, compressFile);decompresDir new File(E:\\test\\zip\\unzip);CompressUtil.unzip(compressFile, decompresDir);// gzipsourceFile new File(E:\\test\\a.txt);compressFile new File(E:\\test\\gzip\\gzip\\a.txt.gz);CompressUtil.gzip(sourceFile, compressFile);decompresFile new File((E:\\test\\gzip\\ungzip\\a.txt));CompressUtil.ungzip(compressFile, decompresFile);// tarcompressFile new File(E:\\test\\tar\\tar\\hhhh.tar);CompressUtil.tar(sourceFiles, compressFile);decompresDir new File(E:\\test\\tar\\untar);CompressUtil.untar(compressFile, decompresDir);// targzcompressFile new File(E:\\test\\targz\\targz\\hhhh.tar.gz);CompressUtil.targz(sourceFiles, compressFile);decompresDir new File(E:\\test\\targz\\untargz);CompressUtil.untargz(compressFile, decompresDir);} }- commons-net 提供了一套用于网络协议的API包括FTP、SMTP、POP3、IMAP等。使用Apache Commons Net库可以简化Java程序对网络协议的处理实现FTP、SMTP等协议的功能并且在这些协议的基础上可以进行更高层次的封装实现更复杂的网络应用。 maven依赖 dependencygroupIdcommons-net/groupIdartifactIdcommons-net/artifactIdversion3.8.0/version /dependency常见组件 FTP Apache Commons Net提供了FTP协议的API实现了FTP的各种功能如登陆、上传下载、创建文件夹、删除文件、列举目录等。如需使用FTP连接可以使用FTPClient类。 private static void ftpTest() throws IOException {FTPClient ftpClient new FTPClient();// 设置控制编码为UTF-8ftpClient.setControlEncoding(UTF-8);// 创建连接ftpClient.connect(127.0.0.1, 21);// 登录ftpClient.login(anonymous, );// 设置数据编码为UTF-8ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE);ftpClient.setCharset(Charset.forName(UTF-8));// 当前目录System.out.println(ftpClient.printWorkingDirectory());// cd /upload目录ftpClient.changeWorkingDirectory(/upload);System.out.println(ftpClient.printWorkingDirectory());// 上传文件boolean flag ftpClient.storeFile(/upload/a.txt, new FileInputStream(new File(E:\\test\\a.txt)));System.out.println(String.format(上传文件%s, flag));// 关闭连接ftpClient.disconnect();}SMTP Apache Commons Net提供了SMTP协议的API实现了SMTP的各种功能如发送邮件、附件对邮件进行编码、解码等。如需使用SMTP协议进行发送邮件可以使用SMTPClient类。 POP3 Apache Commons Net提供了POP3协议的API实现了POP3的各种功能如接收邮件查看邮件删除邮件等。如需使用POP3协议接收邮件可以使用POP3Client类。 IMAP Apache Commons Net提供了IMAP协议的API实现了IMAP的各种功能如接收邮件查看邮件删除邮件等。如需使用IMAP协议接收邮件可以使用IMAPClient类。 - commons-csv Apache Commons CSV 是一个 Java 库用于解析和生成以逗号分隔的值CSV格式的数据。它提供了简单易用的 API可以方便地读取和写入 CSV 文件。 maven依赖 dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-csv/artifactIdversion1.9.0/version /dependencyCSV读取写入 使用示例 Data NoArgsConstructor AllArgsConstructor public class User {public String userId;public String userName;public String sex; }public class CsvTest {public static void main(String[] args) throws Exception {String fileName E:\\test\\user.csv;// 写入ListUser data new ArrayList();data.add(new User(111, 哈^哈, 男));data.add(new User(222, 呵呵, 男));data.add(new User(333, 嘻\嘻, 女));PrintWriter printWriter new PrintWriter(fileName);CSVPrinter printer CSVFormat.DEFAULT.builder().setHeader(userId, userName, sex).setDelimiter(^).setQuoteMode(QuoteMode.MINIMAL).setQuote().build().print(printWriter);for (User user : data) {printer.printRecord(user.getUserId(), user.getUserName(), user.getSex());}printer.flush();printer.close();// 读取FileReader fileReadernew FileReader(fileName);CSVParser parser CSVFormat.DEFAULT.builder().setHeader(userId, userName, sex).setSkipHeaderRecord(true).setDelimiter(^).setQuoteMode(QuoteMode.MINIMAL).setQuote().build().parse(fileReader);ListUser list new LinkedList();for (CSVRecord record : parser.getRecords()) {list.add(new User(record.get(userId), record.get(userName), record.get(sex)));}System.out.println(String.format(读取到的数据%s, JSON.toJSONString(list)));fileReader.close();parser.close();} }user.csv 日志 读取到的数据[{sex:男,userId:111,userName:哈^哈},{sex:男,userId:222,userName:呵呵},{sex:女,userId:333,userName:嘻\嘻}]- commons-configuration2 Apache Commons Configuration 是 Apache 软件基金会下的一个开源项目提供了一套用于处理配置信息的工具库。 maven依赖 dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-configuration2/artifactIdversion2.7/version /dependency主要功能 支持读取和保存多种配置格式如 properties、XML、JSON、YAML 等。提供了配置值的类型转换功能允许配置值被解释成程序中的合适的数据类型。支持对配置文件进行动态更新当配置文件发生改变时能够自动重新加载最新的配置信息。提供了支持表达式和变量替换的功能在配置文件中可以使用变量和动态表达式。 功能分类 配置文件的加载和管理 使用 Commons Configuration 2 可以轻松地加载和管理配置文件。它提供了一种统一的接口可以方便地加载和获取各种格式的配置信息并支持跨多种配置格式的无缝切换。 类型转换 Commons Configuration 2 具有强大的类型转换功能可以自动将配置值转换成需要的数据类型。这使得开发者在读取配置值时无需手动进行类型转换简化了代码逻辑。 动态更新 该库支持动态更新配置信息当配置文件发生变化时应用程序可以自动重新加载最新的配置信息而无需重启应用程序。 表达式和变量替换 Commons Configuration 2 支持在配置文件中使用表达式和变量替换这使得配置文件中的值更加灵活和动态化。 - commons-text Apache Commons Text 是 Apache Commons 项目下的一个子项目旨在提供一组文本处理相关的实用工具类。 maven依赖 dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-text/artifactIdversion1.10.0/version /dependency主要功能 字符串操作提供了字符串操作的工具类例如字符串切割、字符串连接、字符串替换等。 格式化和解析提供了各种文本格式化和解析的工具类例如数字格式化、日期格式化、货币格式化等。 字符串转义提供了字符串转义的工具类例如Unicode转义、HTML实体转义等。 字符串生成提供了生成随机字符串、密码等的工具类。 单词处理工具WordUtils WordUtils 是一个用于处理单词的工具类提供了一些常见的文本操作特别是对单词进行格式化和修正。 方法方法描述capitalize(String str)将字符串中所有分隔符分隔的每个单词的首字母大写capitalize(String str, char… delimiters)将字符串中所有分隔符分隔的每个单词的首字母大写可指定分隔符capitalizeFully(String str)将字符串中所有分隔符分隔的每个单词的首字母大写其余小写。capitalizeFully(String str, char… delimiters)将字符串中所有分隔符分隔的每个单词的首字母大写其余小写。可指定分隔符uncapitalize(String str)将字符串中所有分隔符分隔的每个单词的首字母小写uncapitalize(String str, char… delimiters)将字符串中所有分隔符分隔的每个单词的首字母小写可指定分隔符swapCase(String str)将字符串中大写字母转换为小写小写字母转换为大写。initials(String str)获取字符串中每个单词的首字母并返回它们的组合。wrap(String str,int wrapLength)将字符串按照指定的长度进行换行。 大小写转换工具CaseUtils CaseUtils 是一个用于处理字符串大小写的工具类提供了多种方法来改变字符串的大小写格式特别是在不同的命名约定之间转换时非常有用。 方法方法描述toCamelCase(String str, boolean capitalizeFirstLetter, char… delimiters)将字符串转换为驼峰命名法形式的字符串。可以指定是否将首字母大写以及分隔符的字符数组。 转义工具StringEscapeUtils StringEscapeUtils 是一个用于处理字符串转义和反转义的工具类主要用于处理与 HTML、XML、Java 字符串等相关的转义和反转义操作。 字符串转义工具类。 方法方法描述escapeCsv(String str)将字符串中的CSV特殊字符进行转义例如逗号、双引号等。escapeEcmaScript(String str)将字符串中的ECMAScript/JavaScript特殊字符进行转义例如双引号、反斜线等。escapeHtml4(String str)将字符串中的HTML4特殊字符进行转义例如小于号、大于号等。escapeJava(String str)将字符串中的Java特殊字符进行转义例如双引号、反斜线等。escapeJson(String str)将字符串中的JSON特殊字符进行转义例如引号、反斜线等。escapeSql(String str)将字符串中的SQL特殊字符进行转义例如引号、单引号等。escapeXml(String str)将字符串中的XML特殊字符进行转义例如小于号、大于号等。escapeXSI(String str)将字符串中的XSI(XMLSchemaInstance)特殊字符进行转义。unescapeCsv(String str)将字符串中的CSV转义字符还原为原始字符。unescapeEcmaScript(String str)将字符串中的ECMAScript/JavaScript转义字符还原为原始字符。unescapeHtml4(String str)将字符串中的HTML4转义字符还原为原始字符。unescapeJava(String str)将字符串中的Java转义字符还原为原始字符例如将\n转换为换行符。unescapeJson(String str)将字符串中的JSON转义字符还原为原始字符。unescapeSql(String str)将字符串中的SQL转义字符还原为原始字符。unescapeXml(String str)将字符串中的XML转义字符还原为原始字符。unescapeXSI(String str)将字符串中的XSI(XMLSchemaInstance)转义字符还原为原始字符。 使用示例 public class TextTest {public static void main(String[] args) {System.out.println(---------------------------------------------------------);String str HellO worlD;System.out.println(原字符串 str);// 单词首字母大写System.out.println(单词首字母大写 WordUtils.capitalize(str));// 单词首字母大写其它小写System.out.println(单词首字母大写其它小写 WordUtils.capitalizeFully(str));// 单词首字母大写System.out.println(单词首字母小写 WordUtils.uncapitalize(str));System.out.println(---------------------------------------------------------);String input user_type-desc;System.out.println(原字符串 input);// 字符串转驼峰首字母小写指定分隔符为_、-String camelCase CaseUtils.toCamelCase(input, false, _,-);System.out.println(字符串转驼峰首字母小写 camelCase);// 字符串转驼峰首字母大写指定分隔符为_、-String camelCaseCapitalized CaseUtils.toCamelCase(input, true, _,-);System.out.println(字符串转驼峰首字母大写 camelCaseCapitalized);System.out.println(---------------------------------------------------------);String htmlString divHello, world!/div;System.out.println(原字符串 htmlString);// HTML实体转义String escapedHtml StringEscapeUtils.escapeHtml4(htmlString);System.out.println(转义后的HTML字符串 escapedHtml);// HTML实体反转义String unescapedHtml StringEscapeUtils.unescapeHtml4(escapedHtml);System.out.println(反转义后的HTML字符串 unescapedHtml);System.out.println(---------------------------------------------------------);// 生成随机字符串RandomStringGenerator generator new RandomStringGenerator.Builder().withinRange(0, z).filteredBy(Character::isLetter).build();String randomString generator.generate(10);System.out.println(生成的随机字符串 randomString);System.out.println(---------------------------------------------------------);} }日志 --------------------------------------------------------- 原字符串HellO worlD 单词首字母大写HellO WorlD 单词首字母大写其它小写Hello World 单词首字母小写hellO worlD --------------------------------------------------------- 原字符串user_type-desc 字符串转驼峰首字母小写userTypeDesc 字符串转驼峰首字母大写UserTypeDesc --------------------------------------------------------- 原字符串divHello, world!/div 转义后的HTML字符串lt;divgt;Hello, world!lt;/divgt; 反转义后的HTML字符串divHello, world!/div --------------------------------------------------------- 生成的随机字符串zEkAgsMDiQ ---------------------------------------------------------
http://www.w-s-a.com/news/433131/

相关文章:

  • php和网站开发网络软营销
  • 大型做网站的公司有哪些wordpress注册链接无效
  • 推荐门户网站建设公司网站开发移动端
  • 公司网站的栏目设置成都十大监理公司排名
  • 安溪住房和城乡建设网站关岭县建设局网站
  • 网站域名注销备案徐州房产网
  • 筑聘网windows优化大师自动安装
  • 龙华高端网站设计门户网站建设方案公司
  • 网站开发作用网站建设哪家专业
  • 网站设计报告总结南宁商城网站推广公司
  • 淘宝做店招的网站免费网站建设自助建站
  • 重庆工信部网站绵阳公司网站建设
  • 购物网站开发流程制作企业网页
  • 定州哪里可以做网站建设项目环境影响登记表备案系统网站
  • 网站建设费属于广告费小猪网站怎么做的
  • 国内优秀设计网站站长哈尔滨微网站建设
  • 如何建设一个优秀的电商网站沐风seo
  • 从零开始学网站建设知乎安防网站下载
  • 打开网站弹出qq应用软件有哪些
  • 温州网站建设seo网站 如何做 中英文切换
  • 聊城做网站的公司资讯信阳 网站建设
  • 天津市工程建设交易网站查汗国珠海 网页设计
  • 龙果学院大型网站稳定性建设汾阳做网站
  • 湖北 个人网站备案时间域名查询备案查询
  • 网站推广方式校园网站怎么建
  • 长沙seo网站排名怎么在百度发帖
  • 织梦贷款网站模板做印章网站
  • 彭州做网站上海百度网络推广
  • 广州网站搭建快速提升网站排名荧光字网站
  • 15年做那些网站能致富做seo是什么意思