文件夹 Directory : 存储文件的容器,防止文件重名而设置,文件归类,文件夹本身不存储任何数据, 计算专业数据称为 目录
文件 File : 存储数据的,同一个目录中的文件名不能相同
路径 Path : 一个目录或者文件在磁盘中的位置
c:\jdk8\jar 是目录的路径,是个文件夹的路径
c:\jdk8\bin\javac.exe 是文件的路径
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);
- }
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);
- }
boolean delete() 删除指定的目录或者文件,路径写在File类的构造方法
不会进入回收站,直接从磁盘中删除了,有风险
若文件打开,没有文件,没有权 则会删除失败
- public static void fileMethod03(){
- File file = new File("C:/Java/aaa");
- boolean b = file.delete();
- System.out.println("b = " + b);
- }
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);
- }
绝对路径
在磁盘中的路径具有唯一性
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);
- }
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);
- }
返回值是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);
- }
- }