Java —— commons-io常用方法

    xiaoxiao2023-10-26  153

    首先,我们要下载FileUtils相关的Apache-commons-io jar包以及api文档。FileUtils类库的下载页面在:

      http://commons.apache.org/proper/commons-io/download_io.cgi

      image.png

      FieUtils类中常用方法的介绍

      打开FileUtils的api文档,我们抽出一些工作中比较常用的方法,进行总结和讲解。总结如下:

      cleanDirectory:清空目录,但不删除目录。

      contentEquals:比较两个文件的内容是否相同。

      copyDirectory:将一个目录内容拷贝到另一个目录。可以通过FileFilter过滤需要拷贝的 文件。

      copyFile:将一个文件拷贝到一个新的地址。

      copyFileToDirectory:将一个文件拷贝到某个目录下。

      copyInputStreamToFile:将一个输入流中的内容拷贝到某个文件。

      deleteDirectory:删除目录。

      deleteQuietly:删除文件。

      listFiles:列出指定目录下的所有文件。

      openInputSteam:打开指定文件的输入流。

      readFileToString:将文件内容作为字符串返回。

      readLines:将文件内容按行返回到一个字符串数组中。

      size:返回文件或目录的大小。

      write:将字符串内容直接写到文件中。

      writeByteArrayToFile:将字节数组内容写到文件中。

      writeLines:将容器中的元素的toString方法返回的内容依次写入文件中。

      writeStringToFile:将字符串内容写到文件中。

      示例:

      1、统计文件或者目录大小

      public static void main(String[] args) {

      //文件大小

      long len =FileUtils.sizeOf(new File(.../../../XX.java));

      System.out.println(len);

      //目录大小

      len = FileUtils.sizeOf(new File(D:/../../../study04));

      System.out.println(len);

      }

      2、列出子孙级目录或文件,带有过滤功能

      public static void main(String[] args) {

      Collectionfiles =FileUtils.listFiles(new File(D:\\java300\\IO_study04),

      EmptyFileFilter.NOT_EMPTY, null);

      for (File file : files) {

      System.out.println(file.getAbsolutePath());

      }

      System.out.println(---------------------);

      files =FileUtils.listFiles(new File(D:\\..\\IO_study04),

      EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);

      for (File file : files) {

      System.out.println(file.getAbsolutePath());

      }

      System.out.println(---------------------);

      files =FileUtils.listFiles(new File(D:\\..\\IO_study04),

      new SuffixFileFilter(java), DirectoryFileFilter.INSTANCE);

      for (File file : files) {

      System.out.println(file.getAbsolutePath());

      }

      System.out.println(---------------------);

      files =FileUtils.listFiles(new File(D:\\..\\IO_study04),

      FileFilterUtils.or(new SuffixFileFilter(java),

      new SuffixFileFilter(class),EmptyFileFilter.EMPTY), DirectoryFileFilter.INSTANCE);

      for (File file : files) {

      System.out.println(file.getAbsolutePath());

      }

      System.out.println(---------------------);

      files =FileUtils.listFiles(new File(D:\\..\\IO_study04),

      FileFilterUtils.and(new SuffixFileFilter(java),

      EmptyFileFilter.NOT_EMPTY), DirectoryFileFilter.INSTANCE);

      for (File file : files) {

      System.out.println(file.getAbsolutePath());

      }

      }

      3、读物文件

      public static void main(String[] args) throws IOException {

      //读取文件

      String msg =FileUtils.readFileToString(new File(emp.txt),UTF-8);

      System.out.println(msg);

      byte[] datas = FileUtils.readFileToByteArray(new File(emp.txt));

      System.out.println(datas.length);

      //逐行读取

      Listmsgs= FileUtils.readLines(new File(emp.txt),UTF-8);

      for (String string : msgs) {

      System.out.println(string);

      }

      LineIterator it =FileUtils.lineIterator(new File(emp.txt),UTF-8);

      while(it.hasNext()) {

      System.out.println(it.nextLine());

      }

      }

      4、写出内容

      public static void main(String[] args) throws IOException {

      //写出文件

      FileUtils.write(new File(happy.sxt), 学习是一件伟大的事业\r\n,UTF-8);

      FileUtils.writeStringToFile(new File(happy.sxt), 学习是一件辛苦的事业\r\n,UTF-8,true);

      FileUtils.writeByteArrayToFile(new File(happy.sxt), 学习是一件幸福的事业\r\n.getBytes(UTF-8),true);

      //写出列表

      Listdatas =new ArrayList();

      datas.add(马云);

      datas.add(马化腾);

      FileUtils.writeLines(new File(happy.sxt), datas,--------------,true);

      }

      5、复制文件

      public static void main(String[] args) throws IOException {

      //复制文件

      //FileUtils.copyFile(new File(p.png),new File(p-copy.png));

      //复制文件到目录

      //FileUtils.copyFileToDirectory(new File(p.png),new File(lib));

      //复制目录到目录

      //FileUtils.copyDirectoryToDirectory(new File(lib),new File(lib2));

      //复制目录

      //FileUtils.copyDirectory(new File(lib),new File(lib2));

      //拷贝URL内容

      //String url = https://pic2.zhimg.com/v2-7d01cab20858648cbf62333a7988e6d0_qhd.jpg;

      //FileUtils.copyURLToFile(new URL(url), new File(marvel.jpg));

      String datas =IOUtils.toString(new URL(http://www.163.com), gbk);

      System.out.println(datas);

      }

    最新回复(0)