一,概述:
java把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行操作
File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法
我们可以使用File类的方法:
- 创建一个文件/文件夹
- 删除余文件/文件夹
- 获取文件/文件夹
- 判断文件/文件夹是否存在
- 对文件夹进行遍历
- 获取文件的大小
重点:记住这三个单词
file:文件
directory:文件夹/目录
path:路径
二,File中的基本概述
1,分隔符:
- 文件分隔符:在windows下是反斜杠\ Linux系统下是正斜杆/
- 路径分隔符:在windows下是分号; Linux系统下是冒号:
2,路径:
- 绝对路径:以盘符开始,如:C:\\Users\\建江\\Desktop\\常用工具\\aaa\\test.txt
- 相对路径:相对于绝对路径根目录下的路径,如:test.txt
- 注意:路径不区分大小写,\\其中一条是转义字符,在java字符串中相当于 \
3,构造方法:
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新File 实例。
参数:
- String pathname :字符串的路径名称
- 路径可以是以文件结尾,也可以是以文件夹结尾
- 路径可以是相对路径,也可以是绝对路径
- 路径可以是存在,也可以是不存在
- 创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况
File(String parent, String child) 根据parent 路径名字符串和child 路径名字符串创建一个新File 实例。
- 参数:把路径分成了两部分
- String parent:父路径
- String child:子路径
- 好处:父路径和子路径,可以单独书写,使用起来非常灵活;父路径和子路径都可以变化
File(File parent, string child) 根据parent 抽象路径名和child 路径名字符串创建一一个新File 实例。
- 参数:把路径分成了两部分
- File parent:父路径
- String child: 子路径
- 好处:
- 父路径和子路径,可以单独书写,使用起来非常灵活;父路径和子路径都可以变化
- 父路径是File类型,可以使用File的方法对路径进行一些操作 ,再使用路径创建对象
package com.example.demo2;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
// 构造方法一
File file=new File("C:\\Users\\建江\\Desktop\\JavaProject\\idea\\springBoot\\demo2\\a.txt");
System.out.println(file);
File file1=new File("C:\\Users\\建江\\Desktop\\JavaProject\\idea\\springBoot\\demo2");
System.out.println(file1);
File file2=new File("a.txt");
System.out.println(file2);
// 构造方法二
File file3=new File("C:\\Users\\建江\\Desktop\\","a.txt");
System.out.println(file3);
// 构造方法三
File parent =new File("C:\\");
File file4=new File(parent,"a.txt");
}
}
三,file类中的常用方法
1,File类获取功能的方法
- public String getAbsolutePath() :返回此File的绝对路径名字符串。
- public String getPath() :将此File转换为路径名字符串。
- public String getName() :返回由此File表示的文件或目录的名称。
- public long length() :返回由此File表示的文件的长度。
package com.example.demo2;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
// 构造方法一
File file=new File("C:\\Users\\建江\\Desktop\\JavaProject\\idea\\springBoot\\demo2\\a.txt");
System.out.println(file.getAbsoluteFile());
System.out.println(file.getAbsolutePath());
System.out.println(file.toString());
System.out.println(file.getPath());
System.out.println("------------------------");
File file2=new File("a.txt");
System.out.println(file2.getName());
System.out.println(file2.getAbsolutePath());
System.out.println(file2.toString());
System.out.println(file.getPath());
File file1=new File("C:\\Users\\建江\\Desktop\\bishe\\毕业设计图片\\牛排\\1.jpg");
System.out.println(file1.length());;//注意:文件夹是没有大小的
}
}
2,File判断功能的方法
- public boolean exists() :此File表示的文件或目录是否实际存在。
- public boolean isDirectory() :此File表示的是否为目录。
- public boolean isFile() :此File表示的是否为文件。
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
// 构造方法一
File file=new File("C:\\Users\\建江\\Desktop\\JavaProject\\idea\\springBoot\\demo2");
System.out.println(file.exists());
System.out.println(file.isDirectory());
System.out.println("------------------------");
File file2=new File("a.txt");
System.out.println(file2.exists());
System.out.println(file2.isDirectory());
System.out.println(file2.isFile());
File file1=new File("C:\\Users\\建江\\Desktop\\bishe\\毕业设计图片\\牛排\\1.jpg");
System.out.println(file1.exists());;//注意:文件夹是没有大小的
System.out.println(file1.isDirectory());
System.out.println(file1.isFile());
}
}
3,File类创建删除功能的方法
- public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一 个新的空文件。
- public boolean delete() :删除由此File表示的文件或目录。
- public boolean mkdir() :创建由此File表示的目录。
- public boolean mkdirs() : 创建由此File表示的目录,包括任何必需但不存在的父目录。
package com.example.demo2;
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) {
show2();
}
/**
* 创建文件
*/
public static void show(){
File file=new File("C:\\Users\\建江\\Desktop\\1.txt");
File file1=new File("C:\\Users\\建江\\Desktop\\aaa");
File file2=new File("C:\\Users\\建江\\Desktop\\aaa\\bb\\c");
try {
boolean b=file.createNewFile();//如果file 的路径不存在会抛出IO异常
boolean b1=file1.mkdir();//创建文件夹
boolean b2=file2.mkdirs();//创建多级文件夹,如果路径不存在不会抛出异常
System.out.println("文件创建成功了吗:"+b);
System.out.println("文件夹创建成功了吗:"+b1);
System.out.println("多级文件创建成功了吗:"+b2);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 删除文件
*/
public static void show1(){
File file=new File("C:\\Users\\建江\\Desktop\\1.txt");
File file1=new File("C:\\Users\\建江\\Desktop\\aaa");
File file2=new File("C:\\Users\\建江\\Desktop\\aaa\\bb\\c");
boolean b=file.delete();//如果file 的路径不存在会抛出IO异常
boolean b1=file1.delete();//创建文件夹
boolean b2=file2.delete();//创建多级文件夹,如果路径不存在不会抛出异常
System.out.println("文件删除成功了吗:"+b);//删除不会走垃圾站
System.out.println("文件夹删除成功了吗:"+b1);//文件夹中有内容就不能删除
System.out.println("多级文件删除成功了吗:"+b2);
}
/**
* 遍历文件
*/
public static void show2(){
File file=new File("C:\\Users\\建江\\Desktop");
String[] fileNames = file.list();
File[] files = file.listFiles();
for(String name:fileNames){
System.out.println(name);
}
for(File file1:files){
System.out.println(file1);
}
}
}