I/O流——File类及使用

I/O框架介绍

I/O是计算机输入/输出的接口。Java的核心库java.io提供了全方面的I/O接口,包括:文件系统的操作,文件读写,标准设备的输出等。

File类及使用

①   一个File类的对象,表示了磁盘上的文件或目录。

②   File类提供了与平台无关的方法来对磁盘上的文件或目录进行操作。

③   File类直接处理文件和文件系统。比如删除文件,获取文件长度大小信息。

④   File类没有提供方法从文件中读取或向文件中存储信息。

⑤   构造方法:

a)         File(String directoryPath)

b)         File(String directoryPath,String filename)

c)         File(File dirObj,String filename)

⑥   File定义了获取File对象标准属性的方法。

⑦   部分File类常用方法:

a)         public String getName()

b)         public String getParent()

c)         public File getParentFile()

d)         public String getAbsolutePath()

e)         public boolean exists()

f)          public File[] listFile()

g)         public boolean isDirectory()

h)         public boolean isFile()

i)           public long length()

j)           boolean delete()

k)         boolean mkdir()

先在d盘下创建一个名为doc的文件夹,文件夹内创建一个txt文本文件

1         File file = new File("d:\doc");// windows下使用\或/,linux下使用/
2         System.out.println(file.getAbsolutePath());// 返回此抽象路径名的绝对路径名字符串
3         System.out.println(file.getParent());// 获取上一级目录的字符串
4         System.out.println(file.isDirectory());// 判断路径名表示的文件是否是一个目录
5         System.out.println(file.isFile());// 判断路径名表示的文件是否是一个标准文件
6         System.out.println(file.exists());// 判断抽象路径名表示的文件或目录是否存在
7         System.out.println(file.length());// 返回由此抽象路径名表示的文件的长度
8         System.out.println(file.delete());// 删除此抽象路径名表示的文件或目录--若目录下存在文件则不可删除

输出结果

d:doc
d:
true
false
true
0
false

创建目录及目录下创建文件

1         File myFile = new File("d:\zhangsan");
2         System.out.println(myFile.mkdir());// 创建不存在的目录
3 
4         File myFile2 = new File("d:\zhangsan\ceshi.txt");
5         try {
6             System.out.println(myFile2.createNewFile());// 创建指定目录下不存在的文件
7         } catch (IOException e) {
8             e.printStackTrace();
9         }

输出结果

true
true

在zhangsan目录下的ceshi.txt中随意输入一些字符,再添加一张图片

获取目录下所有的文件

1         String[] files = myFile.list();// 获取目录下所有的文件
2         for (String f : files) {
3             System.out.println(f);
4         }

输出结果

ceshi.txt
tu.png

返回所有以txt为后缀名的文件

 1         String[] files2 = myFile.list(new FilenameFilter() {
 2 
 3             @Override
 4             public boolean accept(File dir, String name) {
 5                 return name.endsWith(".txt");//返回所有以txt为后缀名的文件
 6             }
 7         });
 8         for (String f : files2) {
 9             System.out.println(f);
10         }

输出结果

ceshi.txt

获取目录中所有的文件,名称及大小

1         File[] files3=myFile.listFiles();
2         for(File f:files3){
3             System.out.println(f.getName()+"--"+f.length());
4         }

输出结果

ceshi.txt--140
tu.png--73425

返回目录下所有以txt为后缀名的文件,名称及大小

方法一

 1         File[] files4=myFile.listFiles(new FilenameFilter() {
 2             
 3             @Override
 4             public boolean accept(File dir, String name) {
 5                 return name.endsWith(".txt");//返回目录下所有以txt为后缀名的文件
 6             }
 7         });        
 8         for(File f:files4){
 9             System.out.println(f.getName()+"--"+f.length());
10         }

输出结果

ceshi.txt--140

方法二

 1         File[] files5=myFile.listFiles(new FileFilter() {
 2             
 3             @Override
 4             public boolean accept(File pathname) {
 5                 return pathname.getName().endsWith(".txt");
 6             }
 7         });        
 8         for(File f:files5){
 9             System.out.println(f.getName()+"--"+f.length());
10         }

输出结果

ceshi.txt--140

原文地址:https://www.cnblogs.com/wzy330782/p/5470511.html