java使用FileUtils文件操作神器

前言:

在工作当中我们往往遇到很多文件的操作,我们也习惯写一些自己定义的工具类来简化文件操作,其实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.写 文件/文件夹

Java代码  

  1. /* 写文件
  2. * 1.这里只列出3种方式全参数形式,api提供部分参数的方法重载
  3. * 2.最后一个布尔参数都是是否是追加模式
  4. * 3.如果目标文件不存在,FileUtils会自动创建
  5. * */
  6. //static void:write(File file, CharSequence data, String encoding, boolean append)
  7. FileUtils.write(new File("D:/a/b/cxyapi.txt"), "程序换api","UTF-8",true);
  8. //static void:writeLines(File file, Collection<?> lines, boolean append)
  9. List<String> lines=new ArrayList<String>();
  10. lines.add("欢迎访问:");lines.add("www.cxyapi.com");
  11. FileUtils.writeLines(new File("D:/a/b/cxyapi.txt"),lines,true);
  12. //static void:writeStringToFile(File file, String data, String encoding, boolean append)
  13. FileUtils.writeStringToFile(new File("D:/a/b/cxyapi.txt"), "作者:cxy", "UTF-8",true);

2.读 文件/文件夹

Java代码  

  1. //读文件
  2. //static String:readFileToString(File file, String encoding)
  3. System.out.println(FileUtils.readFileToString(new File("D:/a/b/cxyapi.txt"), "UTF-8"));
  4. //static List<String>:readLines(File file, String encoding)
  5. System.out.println(FileUtils.readLines(new File("D:/a/b/cxyapi.txt"), "UTF-8")); //返回一个list

3.删除 文件/文件夹

Java代码  

  1. //删除目录
  2. //static void:deleteDirectory(File directory)
  3. FileUtils.deleteDirectory(new File("D:/not/cxyapi"));
  4. //static boolean:deleteQuietly(File file)
  5. FileUtils.deleteQuietly(new File("D:/not/cxyapi")); //文件夹不是空任然可以被删除,永远不会抛出异常

4.移动 文件/文件夹

Java代码  

  1. //移动文件 或 文件夹
  2. //static void:moveDirectory(File srcDir, File destDir)
  3. FileUtils.moveDirectory(new File("D:/cxyapi1"), new File("D:/cxyapi2")); //注意这里 第二个参数文件不存在会引发异常
  4. //static void:moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)
  5. FileUtils.moveDirectoryToDirectory(new File("D:/cxyapi2"), new File("D:/cxyapi3"), true);
  6. /* 上面两个方法的不同是:
  7. * moveDirectory:D:/cxyapi2里的内容是D:/cxyapi1的内容。
  8. * moveDirectoryToDirectory:D:/cxyapi2文件夹移动到到D:/cxyapi3里
  9. *
  10. * 下面的3个都比较简单没提供示例,只提供了api
  11. * 其中moveToDirectory和其他的区别是 它能自动识别操作文件还是文件夹
  12. */
  13. //static void:moveFileToDirectory(srcFile, destDir, createDestDir)
  14. //static void:moveFile(File srcFile, File destFile)
  15. //static void:moveToDirectory(File src, File destDir, boolean createDestDir)

5.copy

Java代码  

  1. //结果是cxyapi和cxyapi1在同一目录
  2. FileUtils.copyDirectory(new File("D:/cxyapi"), new File("D:/cxyapi1"));
  3. //结果是将cxyapi拷贝到cxyapi2下
  4. FileUtils.copyDirectoryToDirectory(new File("D:/cxyapi"), new File("D:/cxyapi2"));
  5. //拷贝文件
  6. FileUtils.copyFile(new File("d:/cxyapi.xml"), new File("d:/cxyapi.xml.bak"));
  7. //拷贝文件到目录中
  8. FileUtils.copyFileToDirectory(new File("d:/cxyapi.xml"), new File("d:/cxyapi"));
  9. //拷贝url到文件
  10. FileUtils.copyURLToFile(new URL("http://www.cxyapi.com/rss/cxyapi.xml"), new File("d:/cxyapi.xml"));

6.其他

Java代码  

  1. //判断是否包含文件或者文件夹
  2. boolean b=FileUtils.directoryContains(new File("D:/cxyapi"), new File("D:/cxyapi/cxyapi.txt"));
  3. System.out.println(b);
  4. //获得临时目录 和 用户目录
  5. System.out.println(FileUtils.getTempDirectoryPath());
  6. System.out.println(FileUtils.getUserDirectoryPath());
  7. //打开流,如果不存在创建文件及其目录结构
  8. //第二个参数表示 文件流是否是追加方式
  9. FileOutputStream fos=FileUtils.openOutputStream(new File("D:/cxyapi/cxyapi.txt"),true);
  10. fos.write(new String("欢迎访问:www.cxyapi.com\r\n").getBytes());
  11. fos.close();
  12. //文件 或 文件夹大小
  13. System.out.println(FileUtils.sizeOf(new File("D:/cxyapi")));
  14. System.out.println(FileUtils.sizeOfDirectory(new File("D:/cxyapi")));
时间: 2024-10-09 11:25:27

java使用FileUtils文件操作神器的相关文章

Java最全文件操作实例汇总

本文实例汇总了Java文件操作.分享给大家供大家参考,具体如下: 1.创建文件夹 ? 1 2 3 4 5 6 7 8 9 10 11 //import java.io.*; File myFolderPath = new File(%%1); try { if (!myFolderPath.exists()) { myFolderPath.mkdir(); } } catch (Exception e) { System.out.println("新建目录操作出错"); e.print

Java中的文件操作

在使用计算机编程中,常常会用到对于文件的操作,以下是我对于Java中文件的相关内容学习之后的一个总结和在学习过程中遇到的一些问题. 一.什么是文件 对于文件进行操作,首先我们要知道什么是文件.在此之前,我们要知道,计算机其实就是一个文件系统.在计算机中,我们能在硬盘中看到的所有东西都叫文件.由此看来,计算机中文件是一个很广的范围.事实上,计算机中文件被分为了3种,一个是标准文件,一个是目录文件,还有一个就是虚拟内存文件. 这三种对于文件的分类没有一个明确的定义,后缀名是(.txt..doc..m

关于文件的INode与Java中的文件操作接口

本文由作者周梁伟授权网易云社区发布. 近日做的项目中涉及到多进程共同读写多个文件的问题,文件名和最后修改时间都是可能会被频繁修改的,因而识别文件的唯一性会产生相当的麻烦,于是专门再学习了一下文件系统对文件的组织管理方式. 一.    文件在文件系统中的组织方式 一块物理磁盘可以被分为若干个分区,分区的初始化操作就是在上面建立文件系统,如ext3,ext4,ntfs或fat32等都是文件系统的概念,还有网络文件系统如NFS等.同块磁盘上的不同分区也可以被指定不同的文件系统,文件系统对文件在磁盘上的

第11讲-Java泛型和文件操作

1.知识点 1.1.课程回顾 1.2.本章重点 1.2.1.泛型 1.2.2.文件操作 2.具体内容 2.1.Java泛型 2.1.1.为什么需要泛型 我们发现在List中,底层是Object[ ]数组,那么也就是说,List可以存储任意对象类型.但是在实际开发中,我们一般一个List只存储一种类型,所以LIst就无法保证数据类型的约束. 第二点,我们存储的假如是String,那么我们希望取出来的数据类型也是String,没有泛型的时候,无论存什么,取出来的数据类型都是Object.我们希望存什

Java和Android文件操作

File这是文件基类,抽象地代表一个文件实体,它有四个不同的构造方法: File(File dir, String name)  File(String path)   File(String dirPath, String name)  File(URI uri)  这些构造方法的实质都是一样的,就是构造一个File实例,必须提供一个完整的文件路径. 构造了一个File实例,并不是说就新建了一个文件或文件夹,这个File实例,只是实际系统内文件实体的一个代表.重要方法:public boole

Java中写文件操作

OutputStream 和 Writer OutputStream类(直接操作byte数组) 该类是字节输出流的抽象类,定义了输出流的各种操作方法.如下图是OutputStream的层次结构: ByteArrayOutputStream:字节数组流,可以捕获内存缓冲区的数据,转换为字节数组.该类有两个构造方法: new ByteArrayOutputStream(); new ByteArrayOutputStream(int size);    //size表示初始化字节数组缓冲区的大小 B

java基础:关于java流与文件操作

1.描述:流是字节数据或字符数据序列.Java采用输入流对象和输出流对象来支持程序对数据的输入和输出.输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据:输出流对象提供了数据从程序流向终点的管道,程序通过该管道把数据写到终点.所有的关于输入/输出的类都包含在java.io的包中.2.File类:它主要关心的是文件的具体属性,而非内容,定义了许多方法,实现对文件的创建.删除等操作.code:import java.io.*;public class Test{ public s

Java基础之文件操作

流与文件的操作在编程中经常遇到,与C语言只有单一类型File*即可工作良好不同,Java拥有一个包含各种流类型的流家族,其数量超过60个!当然我们没必要去记住这60多个类或接口以及它们的层次结构,理解和掌握其中比较常用的类和接口即可,必要的时候查询文档或API.我们把流家族成员按照它们的使用方法来进行划分,就形成了处理字节和字符的两个单独的层次结构.                                                                          

(转载)java基础:关于java流与文件操作

原文摘自: http://www.blogjava.net/haizhige/archive/2008/08/03/219668.html 1.描述:流是字节数据或字符数据序列. Java采用输入流对象和输出流对象来支持程序对数据的输入和输出.输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据:输出流对象提供了数据从程序流向终点的管道,程序通过该管道把数据写到终点.所有的关于输入/输出的类都包含在java.io的包中.2.File类:它主要关心的是文件的具体属性,而非内容,定