处理文件时出现Java I / O问题

时间:2013-05-14 13:51:19

标签: java file io

当我编译此代码时,我正在学习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 个答案:

答案 0 :(得分:9)

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

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

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

使用文件

file.createNewFile()

使用FileWriter

FileWriter writer = new FileWriter(f);

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

答案 1 :(得分:5)

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

答案 2 :(得分:2)

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

你可以致电File#createNewFile()。当且仅当具有此名称的文件尚不存在时,它以原子方式创建一个由此抽象路径名命名的新空文件。

答案 3 :(得分:1)

除了文件位置外,程序没有任何问题 有两种解决方案

1:您可以将文件存储在项目目录中,与src文件夹并行

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

File f = new File("D:/folder1/folder2/applicationname/src/test.txt");