java常用工具类(一)
主要是Java操作文件及及IO流的一些常用库,是Apache对java的IO包的封装,这里面文件类工具有两个非常核心的类FilenameUtils跟FileUtils,IO流常用工具类IOUtils。
##FilenameUtils工具类
FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。
//导入对应的jar
//import org.apache.commons.io.IOUtils;
//创建文件
File file = new File("文件路径");
// 返回文件后缀名
FilenameUtils.getExtension("c:\\a.java");
// 返回文件名,不包含后缀名
FilenameUtils.getBaseName("c:\\a.java");
// 返回文件全名
FilenameUtils.getName("c:\\a.java");
// 按命令行风格组合文件路径 c:\my\test.text
FilenameUtils.concat("c:\\my","test.text");
// 删除后缀名 c:\a
FilenameUtils.removeExtension("c:\\a.java");
// 使路径正常化
FilenameUtils.normalize("c:\\a.java");
// 匹配通配符
FilenameUtils.wildcardMatch("c:\\a.java","c");
// 路径分隔符改成unix系统格式的 c:/a.java
FilenameUtils.separatorsToUnix("c:\\a.java");
// 获取文件路径,不包括文件名
FilenameUtils.getFullPath("c:\\a.java");
// 检查文件后缀名是不是传入参数(List<String>)中的一个
FilenameUtils.isExtension()
##FileUtils工具类
FileUtils就是一个简单常用的文件工具类,使用时也可以自定义工具类。
//导入对应的jar
//import org.apache.commons.io.FileUtils;
// 输入输出的文件自定义
File file = new File("c:/dddd");
// 获取文件输入的文件流
FileInputStream in = FileUtils.openInputStream(file);
//获取文件输出的文件流
FileOutputStream out = FileUtils.openOutputStream(file);
// 获取size对应的文件大小转换值,最小单位为byte。单位包含:bytes、KB、MB、GB
FileUtils.byteCountToDisplaySize(8);
// 计算一个文件使用指定的校验对象的校验
FileUtils.checksum(file,checksum);
// 计算使用CRC32校验程序文件的校验和
FileUtils.checksumCRC32(file);
// 两个文件内容对比
FileUtils.contentEquals(file,new File("newFile"));
ArrayList<File> files = new ArrayList<>();
// 将文件集合转换为文件数组
File[] files1 = FileUtils.convertFileCollectionToFileArray(files);
// 强制创建文件夹,如果该文件夹父级目录不存在,则创建父级
FileUtils.forceMkdir(file);
// 列举某个目录下的文件(根据过滤器)
FileUtils.listFiles(file,new PrefixFileFilter("前缀"),new SuffixFileFilter("后缀"));
//拷贝一个文件到指定的目录文件
FileUtils.copyFileToDirectory(file,new File("文件夹名"));
// 复制文件到指定文件
FileUtils.copyFile(file,new File("newFile"));
// 复制文件夹内容·到指定文件
FileUtils.copyDirectory(file,new File("newFileDir"));
// 以字符形式读取文件内容
FileUtils.readFileToString(file);
// 复制文件并更新文件记录时间
FileUtils.copyFile(file,new File("新文件地址"),true);
// 删除不为空的文件夹
FileUtils.forceDeleteOnExit(file);
// 强制删除文件
FileUtils.forceDelete(file);
// 清除文件夹里的文件
FileUtils.cleanDirectory(file);
##IOUtils工具类
IOUtils可以帮助我们优雅的操作流。、
//导入对应的jar
//import org.apache.commons.io.IOUtils;
// 把字符转换为输入流
InputStream in = IOUtils.toInputStream("df");
FileOutputStream out = FileUtils.openOutputStream(new File(""));
// IO流数据复制,从输入流写到输出流中,最大支持2GB
IOUtils.copy(in,out);
// 同copy,支持2GB以上数据的复制
IOUtils.copyLarge(in,out);
//从输入流中读取多行数据,返回List<String>
IOUtils.readLines(in);
// 关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块
IOUtils.closeQuietly(in);
// 从输入流、URI获取byte[]
IOUtils.toByteArray(in);
// 从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败
IOUtils.lineIterator(in,"utf-8");
// 转换IO流、 Uri、 byte[]为String
IOUtils.toString(in);
//把字节. 字符等写入输出流
IOUtils.write("zifu",out);