java.io包中的File类代表什么?

时间:2016-11-25 22:09:22

标签: java file io

我对File类所代表的内容有点混淆,因为有些人说它不是描述文件而是描述路径,javadocs说"抽象表示的文件和目录路径名。那么,正确的句子是什么?

3 个答案:

答案 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 /。

相关问题