java.io.File类
文件和目录路径名的抽象表达形式。
Java把电脑中的文件和文件夹(目录)封装为一个File类,我们可以使用File类对文件进行操作
我们可以使用File类的方法
创建一个文件/文件夹,删除文件/文件夹,判断文件/文件夹是否存在,对文件/文件夹进行遍历,获取文件的大小
File类是一个与系统无关的类,任何操作系统都可以使用这个类中的方法
重点:记住这三个单词file:文件,directory:文件夹/目录,path:路径
常用方法:static String pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串
static char pathSeparatorChar 与系统有关的路径分隔符
static String separator与系统有关的默认名称分隔符,为了方便,他被表示为一个字符串
static char separatorChar 与系统有关的默认名称分隔符
public class demoFile {
public static void main(String[] args) {
String pathSeparator= File.pathSeparator;
System.out.println(pathSeparator);//打印出来的是路径分隔符;,而linux系统打印出来的是冒号:
String Separator = File.pathSeparator;
System.out.println(Separator);//打印出来的是反斜杠\
}
}
学习File类的构造方法
路径:分为相对路径和绝对路径两种。以盘符(C:,D:开头的叫叫绝对路径)C:\Windows\AppReadiness\123.txt
相对路径:是一个简化的路径,相对是指的是相对于当前的根目录(C:\Windows\AppReadiness\123.txt)
如果使用当前项目的根目录,路径简化可以书写
C:\Windows\AppReadiness\123.txt—>123.txt
注意:1、路径是不区分大小写的
2、路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符所以需要用两个反斜杠来代表一个斜杠
学习File类的构造方法:1、File(String pathname)通过将给定路径字符串转换为抽象路径名来创建一个新File类实例
2、File(String parent,String child)根据parent路径名字符串和child路径名字符串创建
一个新的File实例。参数:把路径分成两部分String parent:父路径。String child:子路径
好处;父路径和子路径可以单独书写,使用起来非常灵活,父路径和子路径都可以变化
3、File(File parent,String child)根据parent抽象路径名字符串创建一个新的File实例
参数分为两类:File parent: 父路径。String child:子路径
好处:父路径和子路径可以单独书写,使用起来非常灵活,父路径和子路径都可以变化。父路径是File类型,可以使用File
类型,可以使用File的方法来对路径进行一些操作,才使用创建对象
参数:String pathname:字符串的路径名称
路径可以是以文件结尾,也可以是以文件结尾
路径可以是相对路径,也可以是绝对路径
路径可以存在也可以不存在
创建File对象只是把字符串路径封装为File对象,不考虑路径的真假情况
import java.io.File;
public class demo02File {
public static void main(String[] args) {
show01();
show02("d:\\", "a.txt");//还可以求出C:\a.txt
show03();
}
public static void show01() {
File f1 = new File("E:\\编程\\新建文件夹\\1");
System.out.println(f1);//打印出了“E:\编程\新建文件夹\1”说明重写了toString方法
File f2 = new File("E:\\编程\\新建文件夹\\1\\123.txt");
System.out.println(f2);//123.txt不存在,但是还是打印出来了
File f3 = new File("123.txt");
System.out.println(f3);//打印出了123.txt
}
public static void show02(String parent, String child) {
File file = new File(parent, child);
System.out.println(file);
}
private static void show03() {
File parent = new File("C:\\");
File file = new File(parent,"hello.java");//C:\hello.java
System.out.println(file);
}
}
文件获取方法的使用
File类获取功能方法
public String getAbsolutePath():返回此File的绝对路径名字符串
获取的构造方法中传递的路径,无论传递的是绝对路径还是相对路径getAbsolutePath()获取的都是绝对路径
public String getPath():将此File转换为路径名字符串
获取的构造方法中传递的路径
toString方法调用的就是getPath方法
源码:public String toString(){
return getPath()
}
public String getName():返回由此File表示的文件或者目录的名字
获取就是构造方法传递路径的结尾部分(文件或者文件夹)
public long Length():返回由此File表示的文件的长度
获取的是构造方法指定的文件大小,以字节为单位
注意:文件夹是没有大小概念的,不能获取文件夹的大小
如果构造方法中给出的路径不存在,那么Length方法返回值就是0
import java.io.File;
public class demo03Get {
public static void main(String[] args) {
show01();
show02();
show03();
show04();
}
/*public String getAbsolutePath():返回此File的绝对路径名字符串
获取的构造方法中传递的路径,无论传递的是绝对路径还是相对路径getAbsolutePath()获取的都是绝对路径*/
public static void show01(){
File f1=new File("E:\\编程\\新建文件夹\\1\\123.txt");
String absolutePath1 = f1.getAbsolutePath();
System.out.println(absolutePath1);
File f2=new File("123.txt");
String absolutePath2=f2.getAbsolutePath();
System.out.println(absolutePath2);
}
/*public String getPath():将此File转换为路径名字符串
获取的构造方法中传递的路径
toString方法调用的就是getPath方法
源码:public String toString(){
return getPath()
}*/
public static void show02(){
File f1=new File("E:\\编程\\新建文件夹\\1\\123.txt");
File f2=new File("123.txt");
String path1= f2.getPath();
System.out.println(path1);//123.txt
String path2= f2.getPath();
System.out.println(path2);//123.txt
System.out.println(f1);//E:\编程\新建文件夹\1\123.txt
System.out.println(f1.toString());//E:\编程\新建文件夹\1\123.txt
}
/*public String getName():返回由此File表示的文件或者目录的名字
获取就是构造方法传递路径的结尾部分(文件或者文件夹)*/
public static void show03(){
File f1=new File("E:\\编程\\新建文件夹\\1\\123.txt");
String name1=f1.getName();
System.out.println(name1);//123.txt
File f2=new File("E:\\编程\\新建文件夹\\1");
String name2=f2.getName();
System.out.println(name2);//1
}
/*public long Length():返回由此File表示的文件的长度
获取的是构造方法指定的文件大小,以字节为单位
注意:文件夹是没有大小概念的,不能获取文件夹的大小
如果构造方法中给出的路径不存在,那么Length方法返回值就是0*/
public static void show04(){
File f1=new File("C:\\Users\\ASUS\\Desktop\\前端\\HTML\\第一天.html");
long l1=f1.length();
System.out.println(l1);//139
}
}
File 判断功能的方法
File 判断功能的方法
public boolean exists():此File表示的文件或者目录是否实际存在
用于判断构造方法中的路径是否存在,存在用true,不存在用false
public boolean isDirectory():此File表示的是否为目录
用于判断构造方法中给定的路径是否以文件夹结尾,是:true。否:false
public boolean isFile():此File表示的是否为文件
用于判断构造方法中给定的路径是否以文件结尾,是:true。否:false
import java.io.File;
public class demo04 {
public static void main(String[] args) {
show01();
}
/*public boolean exists():此File表示的文件或者目录是否实际存在
用于判断构造方法中的路径是否存在,存在用true,不存在用false*/
public static void show01(){
File f1=new File("C:\\Users\\ASUS\\Desktop\\前端\\HTML\\第一天.html");
System.out.println(f1.exists());//true
File f2=new File("第一天.html");
System.out.println(f2.exists());
}
/*public boolean isDirectory():此File表示的是否为目录
用于判断构造方法中给定的路径是否以文件夹结尾,是:true。否:false
public boolean isFile():此File表示的是否为文件
用于判断构造方法中给定的路径是否以文件结尾,是:true。否:false
注意:电脑的硬盘中只有文件/文件夹,两个方法是互斥的,这两个方法使用的前提,路径必须是存在,否则都返回false*/
public static void show03(){
File f1=new File("C:\\Users\\ASUS\\Desktop\\前端\\HTML\\第一天.html");
if(f1.exists()){
System.out.println(f1.isDirectory());
System.out.println(f1.isFile());
}
}
}
创建删除功能的方法
File类创建删除功能的方法
1、public boolean createNewFile():当且仅当具有该名称的文件夹尚不存在时,创建一个新的空文件夹
创建文件夹的路径和名称在构造方法中给出(构造方法的参数)
返回值时布尔值。true:文件不存在,创建文件,返回true。false:文件存在,不会创建,返回false
注意:1、此方法只能创建文件不能创建文件夹
2、创建文件的路径必需存在,否则会抛出异常
public boolean createNewFile() throws IOException
createNewFile声明抛出了IOException,我们调用这个方法就必须处理这个异常,要么throw要么try…catch
2、public boolean delete():删除由此File表示的文件或者目录。
public boolean mkdir():创建由此File表示的目录 public Boolean mkdirs():创建由此File表示的目录,包括任何必须但是不存在的父目录 public boolean mkdir():创建由此File表示的目录,创建单级文件夹
public Boolean mkdirs():创建由此File表示的目录,包括任何必须但是不存在的父目录既可以创建单级也可以创建多级文件夹
创建文件夹的路径和名称在构造方法中给出(构造方法的参数)
返回布尔值:true:文件夹不存在,创建文件夹,返回true
false:文件夹存在,不会创建,返回false;构造方法中给出的路径不存在返回false
注意:此方法只能创建文件夹,路径不存在不会创建文件夹,也不会报错
import java.io.File;
import java.io.IOException;
public class demo05 {
public static void main(String[] args) throws IOException {
show01();
show02();
show03();
}
/*public boolean createNewFile():当且仅当具有该名称的文件夹尚不存在时,创建一个新的空文件夹
创建文件夹的路径和名称在构造方法中给出(构造方法的参数)
返回值时布尔值。true:文件不存在,创建文件,返回true。false:文件存在,不会创建,返回false
注意:1、此方法只能创建文件不能创建文件夹
2、创建文件的路径必需存在,否则会抛出异常
public boolean createNewFile() throws IOException
createNewFile声明抛出了IOException,我们调用这个方法就必须处理这个异常,要么throw要么try...catch*/
public static void show01() throws IOException {
File f1=new File("C:\\Users\\ASUS\\Desktop\\前端\\123.txt");
boolean b1=f1.createNewFile();
System.out.println(b1);
}
/*public boolean mkdir():创建由此File表示的目录,创建单级文件夹
public Boolean mkdirs():创建由此File表示的目录,包括任何必须但是不存在的父目录既可以创建单级也可以创建多级文件夹
创建文件夹的路径和名称在构造方法中给出(构造方法的参数)
返回布尔值:true:文件夹不存在,创建文件夹,返回true
false:文件夹存在,不会创建,返回false;构造方法中给出的路径不存在返回false
注意:此方法只能创建文件夹,路径不存在不会创建文件夹,也不会报错*/
public static void show02(){
File f1=new File("C:\\Users\\ASUS\\Desktop\\前端");
boolean b1=f1.mkdir();
System.out.println(b1);
File f2=new File("C:\\Users\\ASUS\\Desktop\\前端\\11\\22\33");
boolean b2=f2.mkdirs();
System.out.println(b2);
}
/*public boolean delete():删除由此File表示的文件或者目录。
此方法可以删除构造方法中给出的文件夹/文件
返回值布尔值true:文件夹/文件删除成功返回true。false:文件夹中有内容不会删除,返回false,
构造方法路径不存在返回false
注意:删除的文件直接删除,不走回收站*/
public static void show03(){
File f1=new File("C:\\Users\\ASUS\\Desktop\\前端\\11\\22\33");
boolean b1=f1.delete();
}
}