我对File类所代表的内容有点混淆,因为有些人说它不是描述文件而是描述路径,javadocs说"抽象表示的文件和目录路径名。那么,正确的句子是什么?
答案 0 :(得分:1)
它表示文件系统路径名(绝对或相对)。路径名可能与实际文件或目录对应,也可能不对应。
那么,正确的句子是什么?
javadoc是正确的。 javadoc 始终正确...因为它是Java标准类库的规范。
(那些说File
是路径的人也是正确的。他们说javadoc说的是什么......)
示例:
File dir = new File("weeble");
System.out.println(dir.exists()); // Prints false
dir.mkdir(); // Assume this returns true ....
System.out.println(dir.exists()); // Prints true
在开始时,File
表示不存在的文件系统对象的路径名。然后我们调用mkdir()
,之后File
表示存在的目录的路径。但是,某些其他应用程序(或此应用程序的某个其他线程)可能会删除“weeble”目录,File
将再次表示不存在的对象的路径名。
对于记录,没有明确表示“文件”或“目录”的Java类。文件系统对象的生命周期由操作系统管理,POSIX系统调用API不提供将这些对象与应用程序对象联系起来的功能。因此Java无法做到这一点。
答案 1 :(得分:1)
请考虑这一点:当您创建File对象时,它可能与硬盘上的任何内容都不对应。在那一刻,您可以选择将其创建为目录(mkdir()或mkdirs())或作为文件,将内容流式传输到其中。
它的字符串化值可以表示来自简单文件或文件夹名称,相对文件或文件夹名称的任何内容。或者,它也可以用操作系统要求的格式表示绝对文件或文件夹名称(例如,在Windows上使用驱动程序字母)。
它真的应该被称为路径从开始。但无论如何,自Java 7以来就有Path接口。现代计算机用户在说文件时意味着文档(带内容),但根据旧的Unix / POSIX术语和口头禅(几十年前),'一切都是file',包括实际目录。
答案 2 :(得分:0)
它表示单个文件或目录。
例如,在:
File f = new File("/home/mytextfile.txt");
File p = f.getParentFile()
变量f是文本文件。变量p表示包含该文本文件的父文件夹,在本例中为/ home /。