java common io_Java (三)APACHE Commons IO 常规操作

例1:查看文件、文件夹的长度(大小)。

1 importjava.io.File;2

3 importorg.apache.commons.io.FileUtils;4

5 public classMain {6

7 public static voidmain(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 importjava.io.File;2 importjava.util.Collection;3

4 importorg.apache.commons.io.FileUtils;5 importorg.apache.commons.io.filefilter.EmptyFileFilter;6

7 public classMain {8

9 public static voidmain(String[] args) {10 System.out.println(System.getProperty("user.dir") + "\n");11

12 Collection 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是一个空文件,所以不会被列出来。

3d5bc4e12b0741e84c0bee66be8ed679.png

控制台的输出:

I:\Java\mycode\CommonsIO

I:\Java\mycode\CommonsIO\.classpath

I:\Java\mycode\CommonsIO\.project0 bytes

如果向empty.txt写入内容,再次运行程序,empty.txt就会被列出。因为此时empty.txt不是一个空文件。

61fa5538722b420f1ad99d9a1ed309e8.png

控制台的输出:

I:\Java\mycode\CommonsIO

I:\Java\mycode\CommonsIO\.classpath

I:\Java\mycode\CommonsIO\.project

I:\Java\mycode\CommonsIO\empty.txt47 bytes

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

1 importjava.io.File;2 importjava.util.Collection;3

4 importorg.apache.commons.io.FileUtils;5 importorg.apache.commons.io.filefilter.DirectoryFileFilter;6 importorg.apache.commons.io.filefilter.EmptyFileFilter;7

8 public classMain {9

10 public static voidmain(String[] args) {11 System.out.println(System.getProperty("user.dir") + "\n");12

13 Collection 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.classI:\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 importjava.io.File;2 importjava.util.Collection;3

4 importorg.apache.commons.io.FileUtils;5 importorg.apache.commons.io.filefilter.DirectoryFileFilter;6 importorg.apache.commons.io.filefilter.SuffixFileFilter;7

8 public classMain {9

10 public static voidmain(String[] args) {11 System.out.println(System.getProperty("user.dir") + "\n");12

13 Collection 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 importjava.io.File;2 importjava.util.Collection;3

4 importorg.apache.commons.io.FileUtils;5 importorg.apache.commons.io.filefilter.DirectoryFileFilter;6 importorg.apache.commons.io.filefilter.FileFilterUtils;7 importorg.apache.commons.io.filefilter.SuffixFileFilter;8

9 public classMain {10

11 public static voidmain(String[] args) {12 System.out.println(System.getProperty("user.dir") + "\n");13

14 Collection 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.classI:\Java\mycode\CommonsIO\src\com\mk\Main.java

例4.3:列出指定目录下,指定后缀的文件。

1 importjava.io.File;2 importjava.util.Collection;3

4 importorg.apache.commons.io.FileUtils;5 importorg.apache.commons.io.filefilter.DirectoryFileFilter;6 importorg.apache.commons.io.filefilter.EmptyFileFilter;7 importorg.apache.commons.io.filefilter.FileFilterUtils;8 importorg.apache.commons.io.filefilter.SuffixFileFilter;9

10 public classMain {11

12 public static voidmain(String[] args) {13 System.out.println(System.getProperty("user.dir") + "\n");14

15 Collection files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), FileFilterUtils.or(new SuffixFileFilter("java"), new SuffixFileFilter("class"), EmptyFileFilter.EMPTY), DirectoryFileFilter.INSTANCE);16 for(File file: files1) {17 System.out.println(file.getAbsolutePath());18 }19 }20 }

控制台的输出:

I:\Java\mycode\CommonsIO

I:\Java\mycode\CommonsIO\bin\com\mk\Main.classI:\Java\mycode\CommonsIO\empty.txt

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

例5.1:读取文本文档的内容。

1 importjava.io.File;2 importjava.io.IOException;3

4 importorg.apache.commons.io.FileUtils;5

6 public classMain {7

8 public static void main(String[] args) throwsIOException {9 System.out.println(System.getProperty("user.dir") + "\n");10

11 String message = FileUtils.readFileToString(new File("empty.txt"), "GBK");12 System.out.println(message);13 System.out.println();14

15 byte[] bytes = FileUtils.readFileToByteArray(new File("empty.txt"));16 System.out.println(bytes.length + " bytes");17 System.out.println(newString(bytes));18 }19 }

控制台的输出:

I:\Java\mycode\CommonsIO

锄禾日当午

码农真辛苦

一段小字符

一写一下午46bytes

锄禾日当午

码农真辛苦

一段小字符

一写一下午

例5.2:逐行读取文本文档的内容。

1 importjava.io.File;2 importjava.io.IOException;3 importjava.util.List;4

5 importorg.apache.commons.io.FileUtils;6

7 public classMain {8

9 public static void main(String[] args) throwsIOException {10 System.out.println(System.getProperty("user.dir") + "\n");11

12 List strings = FileUtils.readLines(new File("empty.txt"), "GBK");13 for(String str: strings) {14 System.out.println(str);15 }16 }17 }

控制台的输出:

I:\Java\mycode\CommonsIO

锄禾日当午

码农真辛苦

一段小字符

一写一下午

例5.3:逐行读取文本文档的内容。

1 importjava.io.File;2 importjava.io.IOException;3

4 importorg.apache.commons.io.FileUtils;5 importorg.apache.commons.io.LineIterator;6

7 public classMain {8

9 public static void main(String[] args) throwsIOException {10 System.out.println(System.getProperty("user.dir") + "\n");11

12 LineIterator lineIterator = FileUtils.lineIterator(new File("empty.txt"), "GBK");13 while(lineIterator.hasNext()) {14 System.out.println(lineIterator.nextLine());15 }16 }17 }

控制台的输出:

I:\Java\mycode\CommonsIO

锄禾日当午

码农真辛苦

一段小字符

一写一下午

例6.1:写内容到文件。

1 importjava.io.File;2 importjava.io.IOException;3

4 importorg.apache.commons.io.FileUtils;5

6 public classMain {7

8 public static void main(String[] args) throwsIOException {9 System.out.println(System.getProperty("user.dir") + "\n");10

11 FileUtils.write(new File("text.txt"), "Where ", "GBK", true);12 FileUtils.writeStringToFile(new File("text.txt"), "are ", "GBK", true);13 FileUtils.writeByteArrayToFile(new File("text.txt"), "we?".getBytes("GBK"), true);14 }15 }

运行程序,在工程目录下生成一个文件text.txt,内容:

Where are we?

例6.2:写内容到文件。

1 importjava.io.File;2 importjava.io.IOException;3 importjava.util.ArrayList;4 importjava.util.List;5

6 importorg.apache.commons.io.FileUtils;7

8 public classMain {9

10 public static void main(String[] args) throwsIOException {11 System.out.println(System.getProperty("user.dir") + "\n");12

13 List str = new ArrayList();14 str.add("Bruce Wayne: I've had training.");15 str.add("Ducard: The training is nothing! Will is everything! The will to act.");16

17 FileUtils.writeLines(new File("text.txt"), str, "\r\n", false);18 }19 }

运行程序,在工程目录下生成一个文件text.txt,内容:

Bruce Wayne: I've had training.

Ducard: The training is nothing! Will is everything! The will to act.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值