【发布时间】:2014-12-23 02:51:55
【问题描述】:
File f = new File("textfile.txt");
System.out.println(f.getAbsolutePath());
这会打印出文本文件的路径,但是当我转到它的目录时,文本文件不存在。文本文件是隐藏还是未创建?
【问题讨论】:
标签: java file filenotfoundexception
File f = new File("textfile.txt");
System.out.println(f.getAbsolutePath());
这会打印出文本文件的路径,但是当我转到它的目录时,文本文件不存在。文本文件是隐藏还是未创建?
【问题讨论】:
标签: java file filenotfoundexception
因为,您没有创建文件,而是创建了File。
File 代表一个虚拟/抽象文件名。它不需要实际存在于磁盘上。
虽然有几种方法可以做到这一点,但最简单的可能是使用File#createNewFile,只需确保检查返回值,因为它不能正常工作
File file = new File("textfile.txt");
System.out.println("Exists: " + f.exists());
if (!file.exists()) {
if (!file.createNewFile()) {
System.out.println("Sorry, could not create " + file);
} else {
System.out.println("Create file " + file + " successfully");
}
}
【讨论】:
File 对象会将文件置于程序的当前执行上下文(工作目录)中。要更改路径,您需要提供相对路径或绝对路径到您想要文件的位置。但请注意,某些操作系统会主动限制对根路径上下文的访问。在 Windows 下,您可以使用 /textfile.txt 获取当前驱动器的根目录,例如...还要注意,如果路径不存在,调用 createNewFile 将失败,因为它不会为您创建路径...