Java.io/Android File()实例与实际文件系统对象,何时创建?
我在澄清关于Java.io.File的文档时遇到了一些麻烦 发件人: 此类的实例可能表示也可能不表示实际的文件系统对象,例如文件或目录。如果它确实表示这样一个对象,那么该对象驻留在分区中。分区是文件系统特定于操作系统的存储部分。单个存储设备(例如,物理磁盘驱动器、闪存、CD-ROM)可能包含多个分区。对象(如果有)将驻留在分区上 据我所知,文件对象非常类似于指向文件系统结构中某个位置的路径/指针 关于分区的部分让我很困惑 当我打电话时:Java.io/Android File()实例与实际文件系统对象,何时创建?,java,android,file,io,Java,Android,File,Io,我在澄清关于Java.io.File的文档时遇到了一些麻烦 发件人: 此类的实例可能表示也可能不表示实际的文件系统对象,例如文件或目录。如果它确实表示这样一个对象,那么该对象驻留在分区中。分区是文件系统特定于操作系统的存储部分。单个存储设备(例如,物理磁盘驱动器、闪存、CD-ROM)可能包含多个分区。对象(如果有)将驻留在分区上 据我所知,文件对象非常类似于指向文件系统结构中某个位置的路径/指针 关于分区的部分让我很困惑 当我打电话时: File File=new文件(getFilesDir()
File File=new文件(getFilesDir(),“myFileName.txt”)
是否为名为“myFileName.txt”的新文件系统对象分配了新的硬盘空间块?即
内存:
文件
hats.png
调用构造函数后:
内存:或内存分区地:
文档myFileName.txt
hats.png hats.png
myFileName.txt
如果不是,这个名为“myFileName.txt”的文件系统对象是如何/何时物理创建的?Java文件只是对文件的引用,不管它是否存在。显示的方法使用指定的目录生成新文件,同时自动包含正确的路径分隔符 您可以检查
file.exists()
,查看您正在引用的文件是否确实存在于系统中
只有打开该文件,才能创建该文件
您还可以使用file.createNewFile()
与在命令行调用touch具有相同的效果
据我所知,文件对象非常类似于指向文件系统结构中某个位置的路径/指针
否。文件
封装文件名。没别的了。它不必是现有文件的名称
当我打电话时:
是否为名为“myFileName.txt”的新文件系统对象分配了新的硬盘空间块
不是
如果不是,这个名为“myFileName.txt”的文件系统对象是如何/何时物理创建的
执行以下操作之一时:
- 调用
(除非您喜欢零长度文件,否则基本上不需要)File.createNewFile()
- 在
或文件输出流
的构造函数中使用文件编写器
,或在文件
参数中使用模式
随机访问文件
- 通过
间接使用它来构建上述路径之一或路径
文件通道
/proc
这样的虚拟文件系统。/proc中的“文件”不是真正的文件(磁盘上有0字节)。这些“文件”用于获取内核内外的信息。见此:
File file = new File(getFilesDir(),"myFileName.txt")