1. 程式人生 > >Java (三)APACHE Commons IO 常規炒

Java (三)APACHE Commons IO 常規炒

.project lis -i 以及 rec project import ngs clip

例1:查看文件、文件夾的長度(大小)。

 1 import java.io.File;
 2 
 3 import org.apache.commons.io.FileUtils;
 4 
 5 public class Main {
 6 
 7     public static void main(String[] args) {
 8         long length = FileUtils.sizeOf(new File("J:/PrtSc/20190321/1.png"));
 9         System.out.println(length);
10         
11
length = FileUtils.sizeOf(new File("J:/PrtSc/20190321")); 12 System.out.println(length); 13 14 length = FileUtils.sizeOfDirectory(new File("J:/PrtSc/20190321")); 15 System.out.println(length); 16 } 17 }

控制臺的輸出:

23415
1015221
1015221

例2:列出指定目錄下的非空文件。

 1 import java.io.File;
 2 import java.util.Collection;
 3 
 4 import org.apache.commons.io.FileUtils;
 5 import org.apache.commons.io.filefilter.EmptyFileFilter;
 6 
 7 public class Main {
 8 
 9     public static void main(String[] args) {
10         System.out.println(System.getProperty("user.dir") + "\n");
11 12 Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), EmptyFileFilter.NOT_EMPTY, null); 13 for (File file: files1) { 14 System.out.println(file.getAbsolutePath()); 15 } 16 17 System.out.println("\n" + new File("empty.txt").length() + " bytes"); 18 } 19 }

因為empty.txt是一個空文件,所以不會被列出來。

技術分享圖片

控制臺的輸出:

I:\Java\mycode\CommonsIO

I:\Java\mycode\CommonsIO\.classpath
I:\Java\mycode\CommonsIO\.project

0 bytes

如果向empty.txt寫入內容,再次運行程序,empty.txt就會被列出。因為此時empty.txt不是一個空文件。

技術分享圖片

控制臺的輸出:

I:\Java\mycode\CommonsIO

I:\Java\mycode\CommonsIO\.classpath
I:\Java\mycode\CommonsIO\.project
I:\Java\mycode\CommonsIO\empty.txt

47 bytes

例3:列出指定目錄,以及其子目錄下的非空文件。

 1 import java.io.File;
 2 import java.util.Collection;
 3 
 4 import org.apache.commons.io.FileUtils;
 5 import org.apache.commons.io.filefilter.DirectoryFileFilter;
 6 import org.apache.commons.io.filefilter.EmptyFileFilter;
 7 
 8 public class Main {
 9 
10     public static void main(String[] args) {
11         System.out.println(System.getProperty("user.dir") + "\n");
12         
13         Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);
14         for (File file: files1) {
15             System.out.println(file.getAbsolutePath());
16         }
17     }
18 }

控制臺的輸出:

I:\Java\mycode\CommonsIO

I:\Java\mycode\CommonsIO\.classpath
I:\Java\mycode\CommonsIO\.project
I:\Java\mycode\CommonsIO\.settings\org.eclipse.jdt.core.prefs
I:\Java\mycode\CommonsIO\bin\com\mk\Main.class
I:\Java\mycode\CommonsIO\lib\commons-io-2.6-sources.jar
I:\Java\mycode\CommonsIO\lib\commons-io-2.6.jar
I:\Java\mycode\CommonsIO\src\com\mk\Main.java

例4.1:列出指定目錄下,指定後綴的文件。

 1 import java.io.File;
 2 import java.util.Collection;
 3 
 4 import org.apache.commons.io.FileUtils;
 5 import org.apache.commons.io.filefilter.DirectoryFileFilter;
 6 import org.apache.commons.io.filefilter.SuffixFileFilter;
 7 
 8 public class Main {
 9 
10     public static void main(String[] args) {
11         System.out.println(System.getProperty("user.dir") + "\n");
12         
13         Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), new SuffixFileFilter("java"), DirectoryFileFilter.INSTANCE);
14         for (File file: files1) {
15             System.out.println(file.getAbsolutePath());
16         }
17     }
18 }

控制臺的輸出:

I:\Java\mycode\CommonsIO

I:\Java\mycode\CommonsIO\src\com\mk\Main.java

例4.2:列出指定目錄下,指定後綴的文件。

 1 import java.io.File;
 2 import java.util.Collection;
 3 
 4 import org.apache.commons.io.FileUtils;
 5 import org.apache.commons.io.filefilter.DirectoryFileFilter;
 6 import org.apache.commons.io.filefilter.FileFilterUtils;
 7 import org.apache.commons.io.filefilter.SuffixFileFilter;
 8 
 9 public class Main {
10 
11     public static void main(String[] args) {
12         System.out.println(System.getProperty("user.dir") + "\n");
13         
14         Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), FileFilterUtils.or(new SuffixFileFilter("java"), new SuffixFileFilter("class")), DirectoryFileFilter.INSTANCE);
15         for (File file: files1) {
16             System.out.println(file.getAbsolutePath());
17         }
18     }
19 }

控制臺的輸出:

I:\Java\mycode\CommonsIO

I:\Java\mycode\CommonsIO\bin\com\mk\Main.class
I:\Java\mycode\CommonsIO\src\com\mk\Main.java

Java (三)APACHE Commons IO 常規炒