File文件类
File文件对象
什么是文件类
java把对文件或文件夹的操作封装到File类中,该类中包含对文件 | 文件夹的所有增删改查的操作。
创建File对象
语法:
①public File(String pathname):以pathname为路径创建File对象,可以是绝对路径或相对路径,如果pathname是相对路径,这默认的当前路径在系统工程下。
②public File(String parent,String child):以parent为父路径,child为子路径创建File对象。
③public File(File parent,String 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 }
效果展示: