我尝试了几种不同的方法来实现这一点,而且没有一个能够实现。我正在尝试在Java中创建一个文件夹内的文件。项目需要有几个相互关联的文本文件,将它们放在一个文件夹中更易于管理。理想情况下,此文件夹将存储在scr/
之外。
这是我当前的代码(我先检查文件是否存在):
File testFile = new File("\\appts\\Appointments" + name + ".txt");
try {
testFile.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
但是,当我尝试运行代码时,我收到IOException。我已经尝试了它如何在上面,/appts/Appointments
,appts/Appointments
,appts\\Appointments
。我尝试在线搜索,但找不到任何有用的东西。
编辑:以下是我的项目设置目前的样子:
Project_Folder
src
com
weebly
roboticplayer
appointmentbook
CLASSES
以下是我希望它的外观:
Project_Folder
src
com
weebly
roboticplayer
appointmentbook
CLASSES
appts
答案 0 :(得分:3)
有两种简单的方法可以做到这一点:
1)绝对路径
"C:\\users\\....\\parent_folder\\filename.txt";
2)相对路径,
. (Single dot) is current directory
..(double dots) is parent directory
例如,您要在项目文件夹下创建文本文件。以下是您的文件结构。
Project_folder
src
Java_main_file.java
appts
您想在appts
Java_main_file.java
下创建一个文件
String filename = "..\\appts\\filename.txt"
然后,使用filename
创建您的文件。以下是create a text file的链接。
请注意,您需要确保存在创建文件的文件夹。如果它不存在,您将收到错误。
答案 1 :(得分:0)
您无法在一个步骤中创建文件及其不存在的父目录,但您可以先使用File.mkdirs()创建父目录,然后创建该文件。
答案 2 :(得分:0)
如果您使用JDK7,则可以使用nio包。
Path path = Paths.get("C:\\appts\\Appointments");
Files.createDirectories(path);
如果你想做一个相对于你当前文件夹的路径:
FileSystems.getDefault().getPath("appts", "Appointments");
如果要查看绝对路径名:
FileSystems.getDefault().getPath("appts", "Appointments").toAbsolutePath().toString();
如果您需要该文件对象:
FileSystems.getDefault().getPath("appts", "Appointments").toFile();
在调用AbsolutePath()之后,你也可以执行.toFile()。