关于文件文件=新文件(路径)

时间:2013-10-31 09:27:37

标签: java java-io

Java.iO.File文档说明了关于其构造函数的以下词语pathname

  

public File(String pathname)

     

通过转换给定的路径名​​字符串来创建新的File实例       成为一个抽象的路径名。如果给定的字符串是空字符串,       然后结果是空的抽象路径名。

但如果pathname指向已存在的文件,该怎么办?

File file = new File(PATH_TO_AN_EXISTING_FILE);

以上file实例是否代表一个全新的文件(现有文件会被删除?)它是否代表现有文件?

7 个答案:

答案 0 :(得分:4)

文档说明它将创建一个新的File 实例。这意味着它将在File类的内存中创建一个新实例。

此对象将指向您文件系统上的文件。但是,如果文件存在,则不会创建新文件。

答案 1 :(得分:2)

我认为文档有点令人困惑:在Java中创建新的File对象并不意味着在文件系统中创建新文件。 File对象只是文件和目录路径名的抽象表示,它可能代表也可能不代表磁盘或网络存储上的真实文件。

它或多或少等同于表示某事物地址的String:当你写

String str = "1600 Pennsylvania Ave NW, Washington, DC 20500";

您创建一个包含现有建筑物地址的字符串。您创建的字符串str与恰好位于该地址的白宫之间没有其他连接。

使用现有路径名创建的File与使用不存在的路径名创建的文件之间的唯一区别是,exists()对前者的调用将返回true ,虽然后面的同一个电话会返回false

答案 2 :(得分:1)

File未直接链接到文件系统上的实际文件。如果文件存在,它将指向该文件。如果该文件不存在,则不会创建该文件。 exist()将返回false。

答案 3 :(得分:0)

java.io.File类表示某个文件系统上的路径。它不直接绑定到文件。创建File实例时,打开文件。

File对象只是堆上的一个对象。是的,它确实有字段和方法暗示这个对象代表一个真实的文件(或目录:看到歧义?)。 您可以为不存在的文件/目录创建File个对象:文件系统不会发生任何事情;将创建File个实例。毕竟,File只是一个描述符。

此外,您可以创建具有不同路径的多个File对象(特别是当一个是绝对的而其他对象来自不同的父路径时),但它们实际上都指向相同的文件/目录评估(通过打开In/OutputStreamReader/Writer的文件;使用exists()核对或创建:createFile()createDirectory()

答案 4 :(得分:0)

这是一个非常混乱的类。

File对象代表文件路径,而不是实际文件。因此,当您创建File对象时,您不会更改文件系统上的任何内容。从概念上讲,它与String没有区别。

在java.nio中,该类已重命名为(更直观)Path

答案 5 :(得分:0)

文件f =新文件(“C:// Existing_file”)

上面的行表示已经存在的文件而不是要创建的新文件。 文件类实例始终引用IO操作,并且它始终引用已经包含的文件

答案 6 :(得分:0)

通过创建新实例

File f= new File("ABC.txt");

此文件的新对象将指向系统中名为 ABC.txt 的文件(如果存在)。如果 ABC.txt 文件不存在,则文件对象根本不会指向任何文件。