java.io.File 文件和路径的抽象表示形式
java把电脑中的文件和文件夹(目录)封装成一个类,可以使用该类对文件和文件夹进行操作,可以使用里面的方法:
一、基本方法:
1.创建一个文件或文件夹 2.删除文件或文件夹
3.获取文件或文件夹 4.判断文件或文件夹是否存在
5.对文件夹进行遍历 6.获取文件大小
File类是一个与系统无关的类,任何系统都可以使用该类的方法
(三个英文单词: File 文件;directory 文件夹; path 路径)
四个静态成员变量:
1.String pathSeparator char pathSeparator//与系统有关的路径分隔符(windows “;” linux “:”)
2.String Separator char Separator//与系统有关的默认名分隔符(windows “” linux “/”)
二、绝对路径与相对路径
绝对路径: 是一个完整路径,以盘符开始的路径
相对路径: 是一个简化路径,相对指的是当前目录的根目录(可以省略当前目录的根目录)
注意:1.路径不分大小写;
2.路径中的文件名在windows下为反斜杠,反斜杠在java中是转义字符,因此续连续使用 两个反斜杠才能表示一个普通的反斜杠。
构造方法
//第一种
public static void constionmethod1() {
//1.File(String pathname)通过给定路径字符串转化为抽象路径名来创建一个File实例
File f = new File("C:\Users\lenovo\" +
"IdeaProjects\okok\Month\src\LearnFile");
//结尾可以以文件结尾也可以以文件夹结尾
//路径可以存在也可以不存在,建立File对象只是把字符串路径封装为File对象,不考虑路径真假
System.out.println(f);
}
//第二种
public static void constionmethod2() {
//1.File(String parent , String child)
//根据parent字符串和child字符串创建一个File实例
File f = new File("C:\Users\lenovo\" +
"IdeaProjects\okok\Month\src\LearnFile","Demo01.java");
//好处:把路径分为两部分,父路径和子路径都可以单独书写和变化,使用灵活
System.out.println(f);
}
//第三种
public static void constionmethod3() {
//1.File(File parent , String child)
//根据parent抽象路径名和child字符串创建一个File实例
File f = new File("C:\Users\lenovo\" +
"IdeaProjects\okok\Month\src");
File f1 = new File(f,"LearnFile\Demo01.java");
//好处:父路径是File类型,可以使用File的方法对路径进行一些操作,在使用路径创建对象
System.out.println(f1);
}
操作文件的基本方法
获取功能
//1.public String getAbsolutePath()返回该File的绝对路径字符串
//1.public String getpath()返回该File的路径字符串(创建时使用相对路径返回相对路径,创建时使用绝对路径返回绝对路径)
public static void getmethod1(){
File f1 = new File("C:\Users\lenovo\" +
"IdeaProjects\okok\Month\src\LearnFile\Demo01.java");
File f2 = new File("testa.txt");
System.out.println(f1.getAbsolutePath());
System.out.println(f2.getAbsolutePath());
System.out.println(f1.getPath());
System.out.println(f2.getPath());
}
//3.public String getName()获取构造方法传递路径的结尾部分
public static void getmethod2(){
File f1 = new File("C:\Users\lenovo\" +
"IdeaProjects\okok\Month\src\LearnFile\Demo01.java");
File f2 = new File("C:\Users\lenovo\" +
"IdeaProjects\okok\Month\src\LearnFile");
System.out.println(f1.getName());
System.out.println(f2.getName());
}
//4.public long length()获取文件大小,以字节为单位
public static void getmethod3() {
File f1 = new File("C:\Users\lenovo\" +
"IdeaProjects\okok\Month\src\LearnFile\testc.txt");
long l = f1.length();
System.out.println(l);
//注意:1.文件夹没有大小的概念;2.若给出的路径不存在,返回0
}
判断功能
//判断功能
//1.public boolean exists()判断构造方法中的路径是否存在,存在:true 不存在: false
public static void ismethod(){
File f = new File("D:\作业\管理统计");//绝对路径
boolean b = f.exists();
System.out.println(b);
File f1 = new File("Month"+File.separator+"src\LearnFile\testa.txt");//相对路径
b=f1.exists();
System.out.println(b);
}
//2.public boolean isDirectory 判断给定的路径是否以文件夹结尾
//3.public boolean isFile 判断给定路径是否以文件结尾
public static void ismethod2(String path){
File f = new File(path);//参数传递文件路径
if(f.exists()) {//如果路径不存在,两种方法都会返回false
boolean b = f.isDirectory();
boolean b1 = f.isFile();
System.out.println(b);
System.out.println(b1);
}else{
System.out.println("给出的路径不存在");
}
}
创建与删除功能
//创建与删除功能
//创建功能
//1. public boolean createNewFile()创建一个文件
//2.public boolean mkdir() 创建一个单级文件夹
// public boolean mkdirs() 创建一个多级文件夹(也可以创建一个单级文件夹)
/*
注意事项:
1.当且仅当当前文件(夹)不存在时创建一个新的空文件(夹)
2.创建路径在构造方法中给出,路径必须存在,否则会抛出异常
3.返回值 :true 文件不存在,创建文件
false 文件存在,不创建
*/
public static void create() throws IOException {
System.out.println("请输入创建文件(夹)的路径
创建文件夹请输入:1,创建文件输入:2;");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String path = sc.next();
File file = new File(path);
if(num==1){
System.out.println("创建多级文件请输入3,单级文件请输入0");
int num2 =sc.nextInt();
if(num2==0){
boolean b=file.mkdir();
if(b){
System.out.println("创建成功!");
}else{
System.out.println("文件已存在,创建失败!!");
}
}
if(num2==3){
boolean b=file.mkdirs();
if(b){
System.out.println("创建成功!");
}else{
System.out.println("目录已存在,创建失败!!");
}
}
}
if(num==2){
boolean b=file.createNewFile();
if(b){
System.out.println("创建成功!");
}else{
System.out.println("文件已存在,创建失败!!");
}
}
if(num!=1&&num!=2){
System.out.println("请重新输入");
}
}
//删除给定路径的文件/文件夹(直接删除硬盘的数据)
//public boolean delete()
//返回值:true:文件/文件夹删除成功
//false 1.文件夹中有内容;2.路径不存在
public static void deletemethod(String path){
File f =new File(path);
boolean b=f.delete();
if(b){System.out.println("删除成功");
}else{System.out.println("删除失败");}
}