Java.iO.File文档描述了它的构造函数,该构造函数采用了pathname
public File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。如果给定的字符串是空字符串,则结果是空抽象路径名。
但是,如果pathname指向一个文件,该文件是已经存在的呢?
File file = new File(PATH_TO_AN_EXISTING_FILE);上面的file实例是否表示一个新的文件(与现有的文件一起删除?)或,它是否代表现有的文件?
发布于 2013-10-31 09:29:42
文档中说的是,它将创建一个新的File实例。这意味着它将在File类的内存中创建一个新实例。
此对象将指向文件系统上的一个文件。但是,如果文件存在,它将不会创建新文件。
发布于 2013-10-31 09:32:41
我认为文档有点混乱:在Java中创建一个新的File对象并不意味着在您的文件系统中创建一个新文件。File对象只是文件和目录路径名的抽象表示,它可能表示磁盘上的真实文件,也可能不表示网络存储上的真实文件。
它或多或少相当于表示某物的地址的String:当您编写
String str = "1600 Pennsylvania Ave NW, Washington, DC 20500";创建一个具有现有建筑物地址的字符串。您创建的字符串str与位于该地址的白宫之间没有任何其他连接。
使用现有路径名创建的File与使用不存在路径名创建的文件之间的唯一区别是,exists()对前者的调用将返回true,而对后者的相同调用将返回false。
发布于 2013-10-31 09:33:32
File不直接链接到文件系统上的实际文件。如果文件存在,它将指向该文件。如果文件不存在,它就不会创建它。exist()将返回false。
https://stackoverflow.com/questions/19702659
复制相似问题