创建File对象的深入理解:
首先我们知道我们的File对象是要用来干什么?
- File对象我们用来表示一个硬盘中的一个文件或者一个文件目录(也就是文件夹)
但是这个时候我们很多时候会看到这样一句话:
说是: 我们创建File对象的时候仅仅只是创建了一个内存层面的File对象,具体的这个对象是否在硬盘中实际对应着一个实际存在的文件或者文件目录和我们创建这个File对象无关
- 这个时候我们就要思考,这两者冲突?
- 其实不冲突
- 我们创建一个File对象其实就是单纯的创建了一个内存层面的对象,但是这个时候这个我们创建的内存层面的File对象如果在硬盘中有和它这个对象中的某个属性表示的文件或者文件目录路径相同的文件或者文件目录 ---- 这个时候我们的这个File对象就会和硬盘中的对应的实际存在的文件或者文件目录建立连接,但是这个时候其实我们创建了File对象之后立马会产生一个File对象,这个File对象是否表示硬盘中的某个文件或者文件目录,这个都是可以的
创建File对象我们可以分为这几步:
eg:
File file = new File(D:/feifei);
- 这个时候我们先是在方法区中声明了一个File类型的引用file
- 然后再堆中创建了一个File类型的实例对象
- 创建这个File对象的时候我们要看这个File对象的是否对应了一个硬盘中实际存在的文件或者文件目录
- 这个时候如果不存在,那么就给这个File对象中的一些特殊的依赖于硬盘中实际文件的属性赋一个默认值
- 如果这个时候存在,那么就给这个File对象中的一些特殊的依赖于硬盘中的实际存在的文件的属性赋值一些具体的值—这些值就是我们根据这个硬盘中实际存在的文件的属性而确定的
- 然后让我们的file引用指向我们创建的这个对象