使用Java创建新目录和其中的文件
问题内容:
我试图在该目录中创建一个新目录和一个文件。谁能告诉我我要去哪里错了?
我正在使用Windows系统,并且我希望该目录存在于我的.java
文件所在的文件夹中。
import java.io.*;
class PS_Task1 {
public static void main(String[] args) {
try {
File file = new File("Library\\test.txt");
file.mkdir();
file.createNewFile();
}
catch(Exception e) {
System.out.println("ecception");
}
}
}
问题答案:
基本上,正在发生的事情是,您正在创建一个名为的目录Library\test.txt
,然后尝试创建一个名为同一个东西的新文件,这显然行不通。
所以,而不是…
File file = new File("Library\\test.txt");
file.mkdir();
file.createNewFile();
尝试…
File file = new File("Library\\test.txt");
file.getParentFile().mkdir();
file.createNewFile();
额外
mkdir
如果失败,实际上不会抛出任何异常,这很烦人,所以我会做更多类似的事情…
File file = new File("Library\\test.txt");
if (file.getParentFile().mkdir()) {
file.createNewFile();
} else {
throw new IOException("Failed to create directory " + file.getParent());
}
就这样我知道实际的问题是什么…
额外
目录的创建(在这种情况下)将位于您从中运行程序的位置。
例如,您从运行程序C:\MyAwesomJavaProjects\FileTest
,该Library
目录将在此目录中创建(即C:\MyAwesomJavaProjects\FileTest\Library
)。在与.java
文件相同的位置创建它通常不是一个好主意,因为稍后您的应用程序实际上可能会捆绑到Jar中。