目录
2、File(String parent, String child)
3、File(File parent, String child)
一、File类
1、概述
①文件和目录路径名的抽象表示形式;
②主要用于文件和目录的创建,查找,删除等操作;
2、常用方法
对文件/文件夹进行创建、删除、获取、判断是否存在、遍历、获取文件大小等;
3、注意
File类是一个与系统无关的类,任何操作系统都可以使用这个类的方法;
4、重点记住这三个单词
file:文件
directory:文件夹
path:路径
二、File类的静态成员变量
1、static String pathSeparator
与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
2、static String separator
与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串
3、代码
//备注:名称分隔符和路径分隔符在不同的系统中是不一样的
//名称分隔符:Windows系统是\,Linux系统是/
//路径分隔符:Windows系统是;,Linux系统是:
System.out.println(File.separator);//\
System.out.println(File.pathSeparator);//;
三、绝对路径和相对路径
1、绝对路径
以盘符开始的路径,是一个完整的路径;
2、相对路径
相对于当前项目的根目录,简化后的路径;
3、注意
①路径不区分大小写;
②路径中的名称分隔符在Windows系统中用\,要用转义字符,即\\;
四、File类的构造方法
1、File(String pathname)
概述:
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例;
参数说明:
①String pathname是文件或文件夹的路径;
②可以是相对路径,也可以是绝对路径;
③可以是已存在的,也可以是不存在的;
代码演示:
package study.file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Desktop\\a.txt");
System.out.println(file);//C:\Users\Administrator\Desktop\a.txt
}
}
2、File(String parent, String child)
概述:
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
参数说明:
String parent:父路径;
String child:子路径;
好处是:父路径和子路径子路径可以单独写,使用起来非常灵活,父路径和子路径可以灵活变化;
代码演示:
package study.file;
import java.io.File;
public class Test {
public static void main(String[] args) {
String parent = "C:\\Users\\Administrator\\Desktop\\";
String child = "a.txt";
File file = new File(parent,child);
System.out.println(file);//C:\Users\Administrator\Desktop\a.txt
}
}
3、File(File parent, String child)
概述:
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例;
参数说明:
File parent:父路径;
String child:子路径;
好处是:
父路径和子路径子路径可以单独写,使用起来非常灵活,父路径和子路径可以灵活变化;
父路径是File类型,可以使用File的方法对路径进行一些操作,再使用路径创建对象;
代码演示:
package study.file;
import java.io.File;
public class Test {
public static void main(String[] args) {
String parent = "C:\\Users\\Administrator\\Desktop\\";
String child = "a.txt";
File file = new File(parent);
File file1 = new File(file,child);
System.out.println(file1);//C:\Users\Administrator\Desktop\a.txt
}
}
五、File类获取的相关方法
代码演示:
package study.file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Desktop\\Test\\a.txt");
//1、获取此File的绝对路径字符串
System.out.println(file.getAbsolutePath());//C:\Users\Administrator\Desktop\Test\a.txt
//2、获取此File的路径字符串
System.out.println(file.getPath());//C:\Users\Administrator\Desktop\Test\a.txt
//3、返回由此File表示的文件或目录(文件夹)的名称
System.out.println(file.getName());//a.txt
//4、返回此File表示文件的长度,不能获取文件夹的大小,若文件不存在返回0
System.out.println(file.length());//10(字节)
}
}
六、File类判断的相关方法
代码演示:
package study.file;
import java.io.File;
public class Test {
public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Desktop\\Test\\a.txt");
//1、判断此File是否实际存在
System.out.println(file.exists());//true
//注意:判断是否为文件或目录的方法使用的前提是File实际存在,否则都返回false
//2、判断此File是否为目录
System.out.println(file.isDirectory());//false
//3、判断此File是否为文件
System.out.println(file.isFile());//true
}
}
七、File类创建删除的相关方法
代码演示:
package study.file;
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
File file = new File("C:\\Users\\Administrator\\Desktop\\Test\\b.txt");
//1、当且仅当具有该名称的文件不存在时,创建一个新的空文件
if(file.createNewFile()){
System.out.println("文件创建成功!");
}
//2、删除由此File表示的文件或者目录
if(file.delete()){
System.out.println("文件或目录删除成功!");
}
//3、创建由此File表示的目录
File file1 = new File("C:\\Users\\Administrator\\Desktop\\Test02");
if(file1.mkdir()){
System.out.println("目录已创建!");
}
//4、创建由此File表示的目录,包括必需但不存在的父目录
File file2 = new File("C:\\Users\\Administrator\\Desktop\\Test01\\a");
if(file2.mkdirs()){
System.out.println("所有目录已创建!");
}
}
}
八、目录的遍历
代码演示:
package study.file;
import java.io.File;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
File file = new File("C:\\Users\\Administrator\\Desktop\\Test");
//1、返回一个字符串数组,表示该File目录中所有子文件或目录
String[] strings = file.list();
for (String string : strings) {
System.out.println(string);
}
System.out.println("================");
//2、返回一个文件串数组,表示该File目录中所有子文件或目录
File[] files = file.listFiles();
for (File file1 : files) {
System.out.println(file1);
}
}
}
运行结果:
a.txt
b.txt
test01
test02
================
C:\Users\Administrator\Desktop\Test\a.txt
C:\Users\Administrator\Desktop\Test\b.txt
C:\Users\Administrator\Desktop\Test\test01
C:\Users\Administrator\Desktop\Test\test02