-
文件夹 Directory : 存储文件的容器,防止文件重名而设置,文件归类,文件夹本身不存储任何数据, 计算专业数据称为 目录
-
文件 File : 存储数据的,同一个目录中的文件名不能相同
-
路径 Path : 一个目录或者文件在磁盘中的位置
-
c:\jdk8\jar 是目录的路径,是个文件夹的路径
-
c:\jdk8\bin\javac.exe 是文件的路径
-
-
File类,描述目录文件和路径的对象
-
平台无关性(适配其他操作系统)
1 File类的构造方法
-
File (String pathname)传递字符串的路径名
-
File(String parent,String child)传递字符串的父路径,字符串的子路径
-
File(File parent,String child)传递File类型的父路径,字符串的子路径
public static void main(String[] args) {
fileMethod03();
}
/**
* File(File parent,String child)传递File类型的父路径,字符串的子路径
*/
public static void fileMethod03(){
File parent = new File("C:/Java/jdk1.8.0_221");
String child = "bin";
File file = new File(parent,child);
System.out.println(file);
}
/**
* File(String parent,String child)传递字符串的父路径,字符串的子路径
* C:\Java\jdk1.8.0_221\bin
* C:\Java\jdk1.8.0_221 是 C:\Java\jdk1.8.0_221\bin 的父路径
*/
public static void fileMethod02(){
String parent = "C:/Java/jdk1.8.0_221";
String child = "bin";
File file = new File(parent,child);
System.out.println(file);
}
/**
* File (String pathname)传递字符串的路径名
*/
public static void fileMethod(){
//字符串的路径,变成File对象
File file = new File("C:\\Java\\jdk1.8.0_221\\bin");
System.out.println(file);
}
2 File类的创建方法
-
boolean createNewFile()创建一个文件,文件路径写在File的构造方法中
-
boolean mkdirs()创建目录(文件夹),目录的位置和名字写在File的构造方法中
//创建文件夹 boolean mkdirs()
public static void fileMethod02(){
File file = new File("C://Java//1.txt");
boolean b = file.mkdirs();
System.out.println("b = " + b);
}
//创建文件 boolean createNewFile()
public static void fileMethod() throws IOException {
File file = new File("C://Java//1.txt");
boolean b = file.createNewFile();
System.out.println("b = " + b);
}
3 File类的删除方法
-
boolean delete() 删除指定的目录或者文件,路径写在File类的构造方法
-
不会进入回收站,直接从磁盘中删除了,有风险
-
若文件打开,没有文件,没有权 则会删除失败
-
public static void fileMethod03(){
File file = new File("C:/Java/aaa");
boolean b = file.delete();
System.out.println("b = " + b);
}
4 File类判断方法
-
boolean exists() 判断构造方法中的路径是否存在
-
boolean isDirectory()判断构造方法中的路径是不是文件夹
-
boolean isFile()判断构造方法中的路径是不是文件
-
boolean isAbsolute() 判断构造方法中的路径是不是绝对路径
//boolean exists() 判断构造方法中的路径是否存在
public static void fileMethod07() {
File file = new File("D:\\第一阶段:JavaSE核心基础");
boolean b = file.exists();
System.out.println("b=" + b);
}
//boolean isDirectory()判断构造方法中的路径是不是文件夹
public static void fileMethod08() {
File file = new File("D:\\第一阶段:JavaSE核心基础");
boolean b = file.isDirectory();
System.out.println("b=" + b);
}
//boolean isFile()判断构造方法中的路径是不是文件
//boolean isDirectory()判断构造方法中的路径是不是文件夹
public static void fileMethod09() {
File file = new File("D:\\第一阶段:JavaSE核心基础");
boolean b = file.isFile();
System.out.println("b=" + b);
}
4.1 绝对路径
-
绝对路径
-
在磁盘中的路径具有唯一性
-
Windows系统中,盘符开头
C:/Java/jdk1.8.0_221/bin/javac.exe
-
Linux或者Unix系统, / 开头,磁盘根
/usr/local
-
互联网路径 :
www.baidu.com
-
https://item.jd.com/100007300763.html
-
https://pro.jd.com/mall/active/3WA2zN8wkwc9fL9TxAJXHh5Nj79u/index.html
-
-
-
相对路径
-
必须有参照物
-
C:/Java/jdk1.8.0_221/bin/javac.exe
-
bin是参考点 : 父路径 C:/Java/jdk1.8.0_221
-
bin是参考点 : 子路径 javac.exe
-
bin参考点: 父路径使用 ../表示
-
/**
* boolean isAbsolute() 判断构造方法中的路径是不是绝对路径
* 不写绝对形式的路径,写相对形式的,默认在当前的项目路径下
*/
public static void fileMethod10(){
File file = new File("C:/Java/jdk1.8.0_221/bin/javac.exe");
boolean b1 = file.isAbsolute();
System.out.println("b = " + b1);
File file2 = new File("javac.exe");
boolean b2 = file2.isAbsolute();
System.out.println("b = " + b2);
}
5 File类获取的方法
-
File getAbsoluteFile() 获取绝对路径,返回值是File类型
-
File getParentFile() 获取父路径,返回值是File类型
-
String getName() 获取名字,File构造方法中的路径的名字
-
String getPath() 获取File构造方法中的路径,完整的路径转成String返回
-
long length()获取文件的字节数
/**
* File类的获取方法
* - File getAbsoluteFile() 获取绝对路径,返回值是File类型
* - File getParentFile() 获取父路径,返回值是File类型
*/
public static void fileMethod02(){
File file = new File("C:\\Java\\jdk1.8.0_221\\bin\\java.exe");
//获取绝对路径
File absoluteFile = file.getAbsoluteFile();
System.out.println("absoluteFile = " + absoluteFile);
//获取父路径
File parentFile = file.getParentFile().getParentFile();
System.out.println("parentFile = " + parentFile);
//文件的字节数
long length = file.length();
System.out.println("length = " + length);
}
/**
* File类获取方法
* - String getName() 获取名字,File构造方法中的路径的名字
* - String getPath() 获取File构造方法中的路径,完整的路径转成String返回
*/
public static void fileMethod(){
File file = new File("C:\\Java\\jdk1.8.0_221\\bin\\java.exe");
//getName()获取名字
String name = file.getName();
System.out.println("name = " + name);
//getPath()构造方法参数,转成字符串
String path = file.getPath();
System.out.println("path = " + path);
}
6 File类的方法listFiles()
返回值是File[] 数组 , 存储了多个File对象, 方法的作用是遍历当前的文件夹
public static void main(String[] args) {
//fileMethod();
foreachDir(new File("C:\\Java\\jdk1.8.0_221"));
}
/**
* 目录的递归遍历 : 传递参数,遍历哪个路径,传递过来
*/
public static void foreachDir(File dir){
System.out.println(dir);
//listFiles()遍历目录 C:\Java\jdk1.8.0_221
File[] files = dir.listFiles();
//遍历数组,取出数组中的File对象
//是遍历到的所有文件的全路径 (绝对路径)
for(File f : files){
//判断遍历到的路径是不是文件夹
if(f.isDirectory()) //C:\Java\jdk1.8.0_221\jre ,进入继续遍历
//递归调用自己,传递路径
foreachDir(f);
else
System.out.println(f);
}
}
/**
* 遍历目录
*/
public static void fileMethod(){
File file = new File("C:\\Java\\jdk1.8.0_221");
File[] files = file.listFiles();
for(File f : files){
System.out.println(f);
}
}