1. 统计文件夹大小
Modifier and Type | Function | Description |
---|---|---|
static long | sizeOf(File file) | 返回指定文件或目录的大小. |
Code:
public class CIOTest01 {
public static void main(String[] args) {
/*①文件大小*/
long len = FileUtils.sizeOf(new File("a.jpg"));
System.out.println(len);
/*②目录大小*/
len = FileUtils.sizeOf(new File("D:\\soft\\eclipse\\eclipse-workspace\\IO_study04\\lib"));
System.out.println(len);
}
}
Result:
27143
495622
2. 列出子孙级
Modifier and Type | Function |
---|---|
public static Collection | listFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter) |
Description fileFilter—在查找文件时应用过滤器。必须不为空,使用TrueFileFilter。实例,以匹配选定目录中的所有文件。
dirFilter -可选的过滤器应用时,发现子目录。如果该参数为空,则搜索中将不包含子目录。使用TrueFileFilter。实例来匹配所有目录。
①第2个参数IOFileFilter fileFilter : EmptyFileFilter.NOT_EMPTY
的作用1:可以过滤空文件
首先新建一个空文件empty.txt
Collection<File> files = FileUtils.listFiles(
new File("D:\\soft\\eclipse\\eclipse-workspace\\IO_study04"),
EmptyFileFilter.NOT_EMPTY,/*过滤器,选择NOT_EMPTY意思是把空文件过滤掉*/
null);
/*因为返回的是一个文件集,是一个容器。所以可以遍历*/
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
Result:
D:\soft\eclipse\eclipse-workspace\IO_study04\.classpath
D:\soft\eclipse\eclipse-workspace\IO_study04\.project
当empty.txt增加内容后,Result:
D:\soft\eclipse\eclipse-workspace\IO_study04\.classpath
D:\soft\eclipse\eclipse-workspace\IO_study04\.project
D:\soft\eclipse\eclipse-workspace\IO_study04\empty.txt
②第3个参数IOFileFilter dirFilter : DirectoryFileFilter.INSTANCE
的作用:查看子孙级
/*默认只能查看一层*/
files = FileUtils.listFiles(
new File("D:\\soft\\eclipse\\eclipse-workspace\\IO_study04"),
EmptyFileFilter.NOT_EMPTY,
DirectoryFileFilter.INSTANCE);
/*因为返回的是一个文件集,是一个容器。所以可以遍历*/
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
Result:可以看到所有子孙级
D:\soft\eclipse\eclipse-workspace\IO_study04\.classpath
D:\soft\eclipse\eclipse-workspace\IO_study04\.project
D:\soft\eclipse\eclipse-workspace\IO_study04\.settings\org.eclipse.jdt.core.prefs
D:\soft\eclipse\eclipse-workspace\IO_study04\bin\com\sxt\commons\CIOTest01.class
D:\soft\eclipse\eclipse-workspace\IO_study04\bin\com\sxt\commons\CIOTest2.class
D:\soft\eclipse\eclipse-workspace\IO_study04\empty.txt
D:\soft\eclipse\eclipse-workspace\IO_study04\lib\commons-io-2.6-sources.jar
D:\soft\eclipse\eclipse-workspace\IO_study04\lib\commons-io-2.6.jar
D:\soft\eclipse\eclipse-workspace\IO_study04\src\com\sxt\commons\CIOTest01.java
D:\soft\eclipse\eclipse-workspace\IO_study04\src\com\sxt\commons\CIOTest2.java
③第2个参数IOFileFilter fileFilter : public SuffixFileFilter(final String suffix)
的作用2:只看文件后缀是.java
files = FileUtils.listFiles(
new File("D:\\soft\\eclipse\\eclipse-workspace\\IO_study04"),
new SuffixFileFilter("java"),
DirectoryFileFilter.INSTANCE);
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
Result:
D:\soft\eclipse\eclipse-workspace\IO_study04\src\com\sxt\commons\CIOTest01.java
D:\soft\eclipse\eclipse-workspace\IO_study04\src\com\sxt\commons\CIOTest2.java*/
④第2个参数IOFileFilter fileFilter : public static IOFileFilter or(final IOFileFilter... filters)
的作用2:指定多种文件后缀
files = FileUtils.listFiles(
new File("D:\\soft\\eclipse\\eclipse-workspace\\IO_study04"),
FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("class")) ,
DirectoryFileFilter.INSTANCE);
for(File file:files) {
System.out.println(file.getAbsolutePath());
}
Result:
D:\soft\eclipse\eclipse-workspace\IO_study04\bin\com\sxt\commons\CIOTest01.class
D:\soft\eclipse\eclipse-workspace\IO_study04\bin\com\sxt\commons\CIOTest2.class
D:\soft\eclipse\eclipse-workspace\IO_study04\src\com\sxt\commons\CIOTest01.java
D:\soft\eclipse\eclipse-workspace\IO_study04\src\com\sxt\commons\CIOTest2.java
3. 读取文件
public static void main(String[] args) throws IOException {
// 读取文件
String msg = FileUtils.readFileToString(new File("empty.txt"), "UTF-8");
System.out.println(msg);
byte[] datas = FileUtils.readFileToByteArray(new File("empty.txt"));
System.out.println(datas.length);
System.out.println("***********************************************************");
// 逐行读取法一
List<String> msgs= FileUtils.readLines(new File("empty.txt"), "UTF-8");
for (String string : msgs) {
System.out.println(string);
}
System.out.println("***********************************************************");
// 逐行读取法二
LineIterator it = FileUtils.lineIterator(new File("empty.txt"), "UTF-8");
while(it.hasNext()) {
System.out.println(it.nextLine());
}
}
Result:
Don't forget, a person's greatest emotional need is to feel appreciated.
莫忘记,人类情感上最大的需要是感恩。
128
***********************************************************
Don't forget, a person's greatest emotional need is to feel appreciated.
莫忘记,人类情感上最大的需要是感恩。
***********************************************************
Don't forget, a person's greatest emotional need is to feel appreciated.
莫忘记,人类情感上最大的需要是感恩。