目录
commons.lang包
lang3相对于lang来说完全支持java5的特性,废除了一些旧的API。
共包含了17个实用的类:
ArrayUtils – 用于对数组的操作,如添加、查找、删除、子数组、倒序、元素类型转换等;
BitField – 用于操作位元,提供了一些方便而安全的方法;
BooleanUtils – 用于操作和转换boolean或者Boolean及相应的数组;
CharEncoding – 包含了Java环境支持的字符编码,提供是否支持某种编码的判断;
CharRange – 用于设定字符范围并做相应检查;
CharSet – 用于设定一组字符作为范围并做相应检查;
CharSetUtils – 用于操作CharSet;
CharUtils – 用于操作char值和Character对象;
ClassUtils – 用于对Java类的操作,不使用反射;
ObjectUtils – 用于操作Java对象,提供null安全的访问和其他一些功能;
RandomStringUtils – 用于生成随机的字符串;
SerializationUtils – 用于处理对象序列化,提供比一般Java序列化更高级的处理能力;
StringEscapeUtils – 用于正确处理转义字符,产生正确的Java、JavaScript、HTML、XML和SQL代码;
StringUtils – 处理String的核心类,提供了相当多的功能;
SystemUtils – 在java.lang.System基础上提供更方便的访问,如用户路径、Java版本、时区、操作系统等判断;
Validate – 提供验证的操作,有点类似assert断言;
WordUtils – 用于处理单词大小写、换行等。
Common IO
帮助开发IO功能, 它包括6个主要部分
Utility classes – 工具类,包括一些静态方法来执行常用任务
Input – 输入,InputStream 和 Reader 实现
Output – 输出,OutputStream 和 Writer 实现
Filters – 过滤器,多种文件过滤器实现(定义了 IOFileFilter接口,同时继承了 FileFilter 和 FilenameFilter 接口)
Comparators – 比较器,用于文件比较的多种java.util.Comparatot实现
File Monitor–文件监控
工具类
IOUtils 包含一些工具类,用于处理读,写和拷贝,这些方法基于 InputStream, OutputStream, Reader 和 Writer工作.
FileUtils 包含一些工具类,它们基于File对象工作,包括读,写,拷贝和比较文件
FilenameUtils包含一些工具类,它们基于文件名工作而不是File对象。这个类旨在 在Unix和Windows环境下保持一致,帮助在两个环境下过渡(如从开发环境到生成环境)
FileSystemUtils包含一些工具类,基于文件系统访问功能不被JDK支持。目前,只有一个方法就是得到驱动器空余空间。注意这使用命令行而不是 native code。
EndianUtils 包含静态方法来交换Java基本类型和流的字节序
SwappedDataInputStream实现了DataInput接口。可以从文件中读取非本地字节序。
commons-email
apache提供的一个开源的API,是对javamail的封装
示例:
package com.zzs.commons.mail;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.ImageHtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
import org.apache.commons.mail.SimpleEmail;
import org.apache.commons.mail.resolver.DataSourceUrlResolver;
import org.junit.Test;
/**
* 使用Commons-Email发送邮件
*/
public class CommonsEmailTest {
/**
* 发送内容为简单文本的邮件
*/
@Test
public void sendSimpleTextEmail() throws EmailException {
// 发送简单的email,不能添加附件
Email email = new SimpleEmail();
// 邮件服务器域名
email.setHostName("smtp.sohu.com");
// 邮件服务器smtp协议的SSL端口
email.setSmtpPort(465);
// 用户名和密码为邮箱的账号和密码
email.setAuthenticator(new DefaultAuthenticator("用户名", "密码"));
// SSL安全连接
email.setSSLOnConnect(true);
// 设置字符编码方式
email.setCharset("UTF-8");
// 发件人
email.setFrom("xxx@sohu.com");
// 收件人
email.addTo("xxx@163.com");
// email.addTo(String... emails);//发送给多人
// // 抄送
// email.addCc("xxx");
// // 密送
// email.addBcc("xxx");
// 邮件主题
email.setSubject("测试邮件");
// 邮件正文
email.setMsg("This is a test mail from java application. 哈哈");
// 发送
email.send();
}
/**
* 发送包含附件的邮件(附件为本地资源)
*/
@Test
public void sendEmailsWithAttachments() throws EmailException {
// 附件类,可以添加本地资源,也可以指定网络上资源,在发送时自动将网络上资源下载发送
EmailAttachment attachment = new EmailAttachment();
// 本地路径
attachment.setPath("E:\\test\\data\\mail\\123.jpg");
// 定义附件
attachment.setDisposition(EmailAttachment.ATTACHMENT);
// 附件描述
attachment.setDescription("Picture");
// 附件名(为中文时要处理编码)
attachment.setName("pic.jpg");
// 文本邮件,可以添加多个附件
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.sohu.com");
email.setAuthentication("用户名", "密码");
email.setFrom("xxx@sohu.com");
email.addTo("xxx@163.com");
email.setSubject("测试邮件");
email.setMsg("Here is a test mail.");
email.attach(attachment);
email.send();
}
/**
* 发送包含附件的邮件(附件为在线资源)
*/
@Test
public void sendEmailsWithOnlineAttachments() throws EmailException, MalformedURLException {
EmailAttachment attachment = new EmailAttachment();
attachment.setURL(new URL("https://www.baidu.com/img/bd_logo1.png"));
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Baidu logo");
attachment.setName("Baidu.png");
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.sohu.com");
email.setAuthentication("用户名", "密码");
email.setFrom("xxx@sohu.com");
email.addTo("xxx@163.com");
email.setSubject("测试邮件");
email.setMsg("Here is Baidu's logo.");
email.attach(attachment);
email.send();
}
/**
* 发送内容为HTML格式的邮件,内嵌图片
*/
@Test
public void sendHTMLFormattedEmail() throws EmailException, MalformedURLException {
// HTML格式邮件,同时具有MultiPartEmail类所有“功能”
HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.sohu.com");
email.setAuthentication("用户名", "密码");
email.setFrom("xxx@sohu.com");
email.addTo("xxx@163.com");
email.setSubject("测试邮件");
// 图片的网络地址
URL url = new URL("https://www.baidu.com/img/bd_logo1.png");
String cid = email.embed(url, "Baidu logo");
// 将图片引入html标签
email.setHtmlMsg("<html>The Baidu logo <br/><img src='cid:" + cid + "'></html>");
email.send();
}
/**
* 发送内容为HTML格式的邮件,内嵌图片
*/
@Test
public void sendHTMLFormattedEmailWithEmbeddedImages() throws MalformedURLException, EmailException {
// ImageHtmlEmail类通常是用来发送Html格式并内嵌图片的邮件,它拥有所有HtmlEmail的功能,但是图片主要是以html内嵌的为主
ImageHtmlEmail email = new ImageHtmlEmail();
email.setHostName("smtp.sohu.com");
email.setSmtpPort(456);
email.setSSLOnConnect(true);
email.setAuthentication("用户名", "密码");
email.setFrom("xxx@sohu.com");
email.addTo("xxx@163.com");
email.setCharset("UTF-8");
email.setSubject("测试邮件");
URL url = new URL("https://www.baidu.com");
// 这样HTML内容里如果有此路径下的图片会直接内联
email.setDataSourceResolver(new DataSourceUrlResolver(url));
String htmlEmail = "这里<img src='https://www.baidu.com/img/bd_logo1.png'>有图片。";
email.setHtmlMsg(htmlEmail);
email.send();
}
}
commons-codec
Apache开源组织提供的用于摘要运算、编码的包。
示例代码:
package com.gujin.codec;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.codec.net.URLCodec;
import org.junit.Test;
public class CodecTest
{
@Test
public void testBase64()
{
System.out.println("==============Base64================");
byte[] data = "jianggujin".getBytes();
Base64 base64 = new Base64();
String encode = base64.encodeAsString(data);
System.out.println(encode);
System.out.println(new String(base64.decode(encode)));
}
@Test
public void testMD5()
{
System.out.println("==============MD5================");
String result = DigestUtils.md5Hex("jianggujin");
System.out.println(result);
}
@Test
public void testURLCodec() throws Exception
{
System.out.println("==============URLCodec================");
URLCodec codec = new URLCodec();
String data = "蒋固金";
String encode = codec.encode(data, "UTF-8");
System.out.println(encode);
System.out.println(codec.decode(encode, "UTF-8"));
}
}