File文件类

发布时间 2023-11-23 10:25:23作者: 和哗

File文件对象

什么是文件类

java把对文件或文件夹操作封装到File类中,该类中包含对文件 | 文件夹的所有增删改查的操作

创建File对象

语法:

public File(String pathname):以pathname为路径创建File对象,可以是绝对路径或相对路径,如果pathname是相对路径,这默认的当前路径在系统工程下。
②public File(String parentString child):以parent为父路径,child为子路径创建File对象。
③public  File(File parentString child):根据一个父File对象和子文件路径创建File对象(参数1一定是一个文件目录参数2可以是一个文件目录也可以是文件

举个例子:

 1 public class Test {
 2     public static void main(String[] args) {
 3         //使用以pathname为路径创建File对象
 4         File file=new File("a.txt");
 5         //使用parent为父路径,child为子路径创建File对象
 6         File file1=new File("D:\\MyProject\\BaseProject\\IoTest","a.txt");
 7         //根据父File对象和子文件路径创建File对象
 8         File file2=new File(new File("D:\\MyProject\\BaseProject\\IoTest"),"a.txt");
 9     }
10 }

增加

文件的添加有添加文件和添加文件夹两种方式

语法:

boolean createNewFile():当且仅当具有该名称的文件尚不存在时,原地创建一个由该抽象路径名命名的新的空文件。
②boolean mkdir():创建由此抽象路径名命名的目录。只能创建一层目录
③boolean mkdirs():创建由此抽象路径名命名的目录,可以创建多层目录

举个例子:

 1 public class Test {
 2     public static void main(String[] args) throws IOException {
 3         //使用以pathname为路径创建File对象
 4         File file=new File("a.txt");
 5 
 6         //添加文件
 7         boolean newFile = file.createNewFile();
 8         System.out.println("添加文件是否成功:"+newFile);
 9 
10         //添加一层目录
11         File file1=new File("D:\\MyProject\\BaseProject\\IoTest\\D");
12         boolean mkdir = file1.mkdir();
13         System.out.println("添加一层目录是否成功:" + mkdir);
14         
15         //添加多层目录
16         File file2=new File("D:\\MyProject\\BaseProject\\IoTest\\D\\A\\B\\C");
17         boolean mkdirs = file2.mkdirs();
18         System.out.println("添加多层目录是否成功:" + mkdirs);
19     }
20 }

效果展示:

 删除

删除主要涉及到文件的删除,与文件夹的删除操作

语法:

public boolean delete():删除文件或目录
②public void deleteOnExit():当程序退出时才会删除文件

举个例子:

 1 public class Test {
 2     public static void main(String[] args) throws IOException {
 3         //使用以pathname为路径创建File对象
 4         File file=new File("a.txt");
 5 
 6         //添加文件
 7         boolean newFile = file.createNewFile();
 8         boolean delete = file.delete();
 9         System.out.println("删除文件是否成功:"+delete);
10 
11         //添加一层目录
12         File file1=new File("D:\\MyProject\\BaseProject\\IoTest\\D");
13         boolean mkdir = file1.mkdir();
14         boolean delete1 = file1.delete();
15         System.out.println("删除文件夹是否成功" + delete1);
16         
17         //在程序退出时删除文件或目录
18         File file2=new File("D:\\MyProject\\BaseProject\\IoTest");
19         file2.deleteOnExit();
20     }
21 }

修改

修改主要是对文件本身进行设置,可以设置为只读可写等操作

语法:

public boolean setReadOnly():设置文件只读。
②public boolean setWritable(boolean writable):设置文件可写
③public boolean setReadable(boolean readable):设置文件可读

举个例子:

1 public class Test {
2     public static void main(String[] args) throws IOException {
3         //使用以pathname为路径创建File对象
4         File file=new File("a.txt");
5 
6         //设置file文件只读
7         file.setReadOnly();
8     }
9 }

查询

查询操作可以查询文件相应信息

语法:

①String getName():查询文件名
②String getParent():返回文件的的父路径,如果没有返回null
③String getPath():获取文件的相对路径
④String getAbsolutePath():获取文件的绝对路径
⑤boolean isDirectory():判断是否为目录
⑥boolean isFile():判断是否为普通文件
⑦String[] list():列出该文件下的所有子文件或目录名
⑧File[] listFiles():列出该文件下的所有子文件或目录

 举个例子:

 1 public class Test {
 2     public static void main(String[] args) throws IOException {
 3         //使用以pathname为路径创建File对象
 4         File file=new File("a.txt");
 5         //获取绝对路径
 6         System.out.println("文件的绝对路径"+file.getAbsolutePath());
 7         //文件是否存在
 8         System.out.println("文件是否存在" + file.exists());
 9         //获取文件名
10         System.out.println("文件名" + file.getName());
11         //获取相对路径
12         System.out.println("文件的相对路径" + file.getPath());
13         //判断是否为目录
14         System.out.println("这是一个文件夹吗?" + file.isDirectory());
15         //判断是否为文件
16         System.out.println("这是一个文件吗?" + file.isFile());
17         File file1=new File("F:\\java全栈\\练习结果");
18         //列出文件下的所有子文件或目录名(只显示一层)
19         String[] list = file1.list();
20         System.out.println(Arrays.toString(list));
21         //列出文件下的所有子文件或目录对象
22         File[] files = file1.listFiles();
23         for(File file2:files){
24             System.out.println(file2);
25         }
26     }
27 }

效果展示: