当我编译此代码时,我正在学习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
怎么可能呢?
答案 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");