-2

当我编译这段代码时,我目前正在学习 Java I/O:

    import java.io.File;   
    public class Main {public static void main(String[] args){
            //Creation of the File object
            File f = new File("test.txt");
            System.out.println("File absolute path : " + f.getAbsolutePath());
            System.out.println("File name : " + f.getName());
            System.out.println("Does it exist ? " + f.exists());
            System.out.println("Is it a directory? " + f.isDirectory());
            System.out.println("Is it a file ? " + f.isFile());
}

问题是f.exists()f.isFile()返回false

这怎么可能呢 ?

4

4 回答 4

9
    File f = new File("test.txt");

上面的行不会在磁盘上创建物理文件。它只创建一个名为“test.txt”的文件对象,因此 File#exits() 返回 false。

您需要以多种方式创建实际的物理文件。

使用文件

file.createNewFile()

使用 FileWriter

FileWriter writer = new FileWriter(f);

PS:同样适用于返回 false 的 File#isFile() 。

于 2013-05-14T13:52:44.503 回答
5

File不是文件——它只是可能存在也可能不存在的本机文件系统资源的描述符。例如,您可以执行new File(path).createNewFile().

于 2013-05-14T13:53:42.267 回答
2

new File("test.txt")它通过将给定的路径名​​字符串转换为抽象路径名而不是物理文件来创建一个新的 File 实例。

你可以打电话File#createNewFile()。当且仅当具有此名称的文件尚不存在时,它才会自动创建一个以此抽象路径名命名的新的空文件。

于 2013-05-14T13:53:15.827 回答
1

程序没有问题除了文件位置有两种解决方法

1:可以将文件存放在项目目录下,与src文件夹平行

2 您可以创建指定完整路径的文件

File f = new File("D:/folder1/folder2/applicationname/src/test.txt");
于 2013-05-14T14:01:09.187 回答