File类的实例化
首先我们要知道我们的File对象表示什么?
File类对象可以表示一个文件,也可以表示一个文件目录
- 文件目录俗成文件夹
- public File(String pathname);
- 以pathname为路径创建File对象
- 此时的这个pathname可以是相对路径,也可以是绝对路径
相对路径就是相对于于本项目 — 也就是在项目位置下
绝对路径就是带盘符的路径 — 也就是一个完整的路径
eg: 传入一个相对路径构造File对象
/*
这个时候创建的这个File对象对应的就是就是在本项目位置下的一个名为Hello的一个txt文件
*/
File file = new File("Hello.txt");
- 要注意: 这个时候我们只是才内存的角度创建了一个File类型的对象,这个时候这个路径下的文件可以不存在
eg: 传入一个绝对路径构造FIle对象
/*
这个时候创建的这个File对象就是在D盘中的workspace_idea目录(文件夹)下的day02目录
*/
File file = new File("D:\\workspace_idea\\day02");
- 这个时候我们创建的这个File对象不是一个文件而是一个文件目录
- 也就是创建了一个File对象 ---- 表示一个文件目录
- File(String parentpath , String childpath);
- 这个方法中的第一个参数表示上一级的目录
eg:
File file = new File("D:\\workspace_idea","day02");
- 这里我们就是创建了一个D盘中workspace_idea目录下的day02目录的File对象
- File(File parentFile, childpath);
- 这个方法就是根据第一个File类型的参数对象的位置,在第一个参数File对象的地址之下创建childpath文件或者文件夹对应的对象
eg:
File file1 = new File("D:\\workspace_idea\\day02");
FIle file2 = new File(file1,"hi.txt");
- 这个时候我们的file2就是在file1的所在位置作为上级目录的条件下创建的
这个时候的file2对象就是D盘中的workspace目录下的day02目录下的hi.txt文件
通过上面我们可以发现,很多地方都用到了" \ \ "
这个\ \表示什么?
- 它表示路径分隔符
路径分隔符:
路径分隔符的使用和系统有关
- 在windows和DOS系统中都是默认使用" \ "作为路径分隔符
- UNIX和URL中都是使用"/"作为路径分隔符
我们的java在windows系统上运行时,这个时候按理来讲是使用" \ “作为路径分隔符,但是我们的java中” \ “(反斜杠)有转义的意思,这个时候为了和转义符区分,在windows系统下java中是使用” \ \ “作为路径分隔符,或者使用”/"作为路径分隔符
总结: windows系统下java中使用"\ \ “或者”/"
由于java程序支持跨平台运行,因此使用路径分隔符要谨慎使用
- 为了解决这一个隐患,File类中提供了一个常量: Separator
public void final String Separator
使用这个常量作为分隔符会根据系统的不同,动态的提供分隔符
java中三种路径分隔符的使用举例:
- "\ \ "
File file1 = new File("D:\\feifei\\into.txt");
- “/”
File file2 = new File("D:/feifei/into.txt");
- File.Separator
File file3 = new File("D:" + File.separator + "feifei" + File.separator + "into.txt");
上面这三种都是在内存中创建了一个File对象,这个File对象表示一个D盘下的feifei文件夹下的into.txt文件
重难点思想:
如果我们创建了一个File对象,这个时候硬盘中如果有这个对象对应的文件夹或者是文件目录,这个时候就是我们的File对象就表示对应的硬盘内的文件或者是文件目录, 如果这个时候硬盘中这个File对象对应的文件或者文件目录,这个时候这个File对象并不是指向了一个null,而是指向了内存中的一个File对象,仅仅是内存层面的一个对象,不表示硬盘中的实际的文件和文件目录