前言:
在工作当中我们往往遇到很多文件的操作,我们也习惯写一些自己定义的工具类来简化文件操作,其实apache的commons的FileUtils类就是这样一个工具类,使用它能大大的简化我们对文件的操作。
准备工作:
1.下载jar 地址:http://commons.apache.org/proper/commons-io/download_io.cgi
2.把commons-io-2.4.jar 这个文件导入到你的项目中
说明:
1.由于是一个工具类使用都非常的简单 所以本文只是将其分类,展示它能够提供给我们什么。
2.习惯看api的可以直接看官方的api 传送门
3.可以看一看官方的指引 指引传送门
4.FileUtils只是commons-io的其中一个工具类
分类说明演示:
1.写 文件/文件夹
- /* 写文件
- * 1.这里只列出3种方式全参数形式,api提供部分参数的方法重载
- * 2.最后一个布尔参数都是是否是追加模式
- * 3.如果目标文件不存在,FileUtils会自动创建
- * */
- //static void:write(File file, CharSequence data, String encoding, boolean append)
- FileUtils.write(new File("D:/a/b/cxyapi.txt"), "程序换api","UTF-8",true);
- //static void:writeLines(File file, Collection<?> lines, boolean append)
- List<String> lines=new ArrayList<String>();
- lines.add("欢迎访问:");lines.add("www.cxyapi.com");
- FileUtils.writeLines(new File("D:/a/b/cxyapi.txt"),lines,true);
- //static void:writeStringToFile(File file, String data, String encoding, boolean append)
- FileUtils.writeStringToFile(new File("D:/a/b/cxyapi.txt"), "作者:cxy", "UTF-8",true);
2.读 文件/文件夹
- //读文件
- //static String:readFileToString(File file, String encoding)
- System.out.println(FileUtils.readFileToString(new File("D:/a/b/cxyapi.txt"), "UTF-8"));
- //static List<String>:readLines(File file, String encoding)
- System.out.println(FileUtils.readLines(new File("D:/a/b/cxyapi.txt"), "UTF-8")); //返回一个list
3.删除 文件/文件夹
- //删除目录
- //static void:deleteDirectory(File directory)
- FileUtils.deleteDirectory(new File("D:/not/cxyapi"));
- //static boolean:deleteQuietly(File file)
- FileUtils.deleteQuietly(new File("D:/not/cxyapi")); //文件夹不是空任然可以被删除,永远不会抛出异常
4.移动 文件/文件夹
- //移动文件 或 文件夹
- //static void:moveDirectory(File srcDir, File destDir)
- FileUtils.moveDirectory(new File("D:/cxyapi1"), new File("D:/cxyapi2")); //注意这里 第二个参数文件不存在会引发异常
- //static void:moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)
- FileUtils.moveDirectoryToDirectory(new File("D:/cxyapi2"), new File("D:/cxyapi3"), true);
- /* 上面两个方法的不同是:
- * moveDirectory:D:/cxyapi2里的内容是D:/cxyapi1的内容。
- * moveDirectoryToDirectory:D:/cxyapi2文件夹移动到到D:/cxyapi3里
- *
- * 下面的3个都比较简单没提供示例,只提供了api
- * 其中moveToDirectory和其他的区别是 它能自动识别操作文件还是文件夹
- */
- //static void:moveFileToDirectory(srcFile, destDir, createDestDir)
- //static void:moveFile(File srcFile, File destFile)
- //static void:moveToDirectory(File src, File destDir, boolean createDestDir)
5.copy
- //结果是cxyapi和cxyapi1在同一目录
- FileUtils.copyDirectory(new File("D:/cxyapi"), new File("D:/cxyapi1"));
- //结果是将cxyapi拷贝到cxyapi2下
- FileUtils.copyDirectoryToDirectory(new File("D:/cxyapi"), new File("D:/cxyapi2"));
- //拷贝文件
- FileUtils.copyFile(new File("d:/cxyapi.xml"), new File("d:/cxyapi.xml.bak"));
- //拷贝文件到目录中
- FileUtils.copyFileToDirectory(new File("d:/cxyapi.xml"), new File("d:/cxyapi"));
- //拷贝url到文件
- FileUtils.copyURLToFile(new URL("http://www.cxyapi.com/rss/cxyapi.xml"), new File("d:/cxyapi.xml"));
6.其他
- //判断是否包含文件或者文件夹
- boolean b=FileUtils.directoryContains(new File("D:/cxyapi"), new File("D:/cxyapi/cxyapi.txt"));
- System.out.println(b);
- //获得临时目录 和 用户目录
- System.out.println(FileUtils.getTempDirectoryPath());
- System.out.println(FileUtils.getUserDirectoryPath());
- //打开流,如果不存在创建文件及其目录结构
- //第二个参数表示 文件流是否是追加方式
- FileOutputStream fos=FileUtils.openOutputStream(new File("D:/cxyapi/cxyapi.txt"),true);
- fos.write(new String("欢迎访问:www.cxyapi.com\r\n").getBytes());
- fos.close();
- //文件 或 文件夹大小
- System.out.println(FileUtils.sizeOf(new File("D:/cxyapi")));
- System.out.println(FileUtils.sizeOfDirectory(new File("D:/cxyapi")));
声明:
1.原创文章,转载请标明并加本文连接。
2.文章反映个人愚见,如有异议欢迎讨论指正
3.更多的内容请看我的 个人博客(测试版)
相关推荐
Apache Commons IO库中的`org.apache.commons.io.FileUtils`类是一个非常实用的工具类,它提供了大量方便、高效的方法,用于处理文件系统操作。这个类在Java开发中被广泛使用,尤其是在处理大量的文件读写和管理任务...
解决Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils 类似错误,需要导入jar包,下载地址是http://commons.apache.org/proper/commons-io/download_io.cgi
`org.apache.commons.io`是这个库的核心包,包含了许多与文件、流、过滤器、读写操作相关的类和工具。 1. **文件操作**: `FileUtils` 类提供了大量的静态方法,用于执行文件和目录的操作,如复制、移动、删除、创建...
2. **Apache Commons IO**: 该模块主要关注输入/输出操作,提供文件操作、流处理、读写二进制或文本数据的工具类。例如,FileUtils 提供了文件的创建、复制、移动和删除等操作,IOUtils 可以用于读取和写入流,或者...
例如,`FileUtils` 提供了大量用于操作文件的静态方法,如拷贝、删除和比较文件;`IOUtils` 则包含了一些与流操作相关的方法,如读取流到字符串或写入字符串到流。 3. **Commons Collections**:这是一个用于增强 ...
相较于Java标准库中的`java.io.File`类提供的`copy()`方法,`commons-io`的`FileUtils.copyFile()`更简单易用,且异常处理更简洁。 总的来说,`commons-io-2.5.jar` 是Java开发者的强大工具,它极大地扩展了Java IO...
1. **IO**: Apache Commons IO 提供了大量与输入/输出流相关的实用工具类,如文件操作、流处理、数据转换等。例如,`FileUtils` 类提供了方便的文件操作方法,如复制、删除、移动等;`IOUtils` 类则提供了读写流的...
在描述中提到的"org.apache.commons.io.FileUtils"是Apache Commons IO中的一个关键类,它提供了大量静态方法来简化文件操作,如复制、移动、删除、读写文件等。以下是一些FileUtils类中的核心功能: 1. 文件复制:...
- `FileUtils.readFileToByteArray()` 和 `FileUtils.writeByteArrayToFile()` 可以方便地将文件读入或写入字节数组,适合处理大文件时的分块操作。 10. **对象序列化与反序列化**: - `ObjectInputStream` 和 `...
1. 文件操作:提供了一系列静态方法来操作文件,如创建、删除、移动、复制和检查文件或目录。例如,`FileUtils.copyFile()` 和 `FileUtils.deleteQuietly()` 方法分别用于文件的复制和安全删除。 2. 流操作:提供了...
1. 文件操作:Apache Commons IO库提供了多种操作文件的方法,如创建、删除、移动、重命名等,同时也支持批量操作。 2. 流操作:通过`IOUtils`,开发者可以轻松地复制流、读取流内容、关闭流,甚至可以实现流的缓冲...
3. **Commons IO**: 这个库主要处理输入/输出相关的操作,包含文件操作、流处理、字符集转换等。例如,FileUtils 提供了安全的文件操作方法,IOUtils 可以方便地读写流数据。 4. **Commons Net**: 这是网络编程的...
Apache Commons IO 是一个Java库,专注于提供各种I/O操作的实用工具类,这些操作包括文件、流、过滤器、读写、转换、检测等。在本案例中,我们讨论的是"commons-io-2.4"版本,这个版本包含了完整的Apache Commons IO...
1. Apache Commons IO: 这个模块专注于输入/输出操作,如文件处理、流操作、数据转换等。它提供了一系列方便实用的类和方法,比如FileUtils用于文件操作,IOUtils用于流的读写和复制,以及EndianUtils用于处理字节序...
例如,`FileUtils.copyFile()`和`FileUtils.moveFile()`可以方便地实现文件的复制和移动,而`DirectoryWalker`类则用于遍历目录结构,执行自定义操作。 2. 文件比较:`FileCompare`类提供了比较两个文件或两个目录...
例如,你可以使用FileUtils.copyFile()和FileUtils.moveFile()来复制或移动文件,FileUtils.deleteQuietly()安全地删除文件,而不会抛出异常。此外,FileUtils还支持目录的操作,如创建、列举目录内容以及清空目录。...
2. **Commons IO**: 专注于文件输入输出相关的操作,提供了一些方便的类和方法,如 FileUtils、IOUtils、FileFilter 等。 3. **Commons Collections**: 为 Java 集合框架提供了扩展,包括各种集合操作、转换和工厂...
【Java基础】-- FileUtils工具类常用方法 ...总之,Apache Commons IO的FileUtils工具类为Java开发者提供了一套强大且易用的文件操作API,极大地简化了日常开发中的文件处理工作,值得在项目中广泛使用。