gpt4 book ai didi

java - 无法使用新 File 构造函数的 Parent 和 Child 参数通过 Java 创建文件

转载 作者:行者123 更新时间:2023-11-30 06:04:19 25 4
gpt4 key购买 nike

我正在尝试使用 Java 创建文件。我想在“Documents”目录的子文件夹中创建此文件。我希望这个子文件夹基于今天的日期。

认为我知道了如何正确使用File类和file.mkdirs()方法,但我想我不知道.

这是我所拥有的:

public class FileTest {
private static final String sdfTimestampFormat = "yyyy-MM-dd HH:mm:ss Z";
private static final SimpleDateFormat timestampSDF = new SimpleDateFormat(sdfTimestampFormat);

private static final String sdfDirFormat = "yyyy-MM-dd";
private static final SimpleDateFormat dirSDF = new SimpleDateFormat(sdfDirFormat);

public static void test() throws FileNotFoundException, IOException{
Date rightNow = new Date();
String data = "the quick brown fox jumps over the lazy dog";
String path = System.getProperty("user.home");
String filename = "file.txt";

String directory_name = path + System.getProperty("file.separator") + "Documents" + System.getProperty("file.separator") + dirSDF.format(rightNow);

File file = new File(directory_name, filename);

if(file.mkdirs()){
String outstring = timestampSDF.format(rightNow) + " | " + data + System.getProperty("line.separator");
FileOutputStream fos = new FileOutputStream(file, true);
fos.write(outstring.getBytes());
fos.close();
}
}
}

所发生的情况是创建了以下目录:

 C:\Users\<username>\Documents\2018-08-03\file.txt\

我的印象是新的File构造函数的Parent参数是基目录,而新的Child参数是基目录。 File 构造函数是文件本身。

难道不是这样吗?我是否需要两个 File 对象,一个用于基本目录,另一个用于文件?

我想要的是这样的:

C:\Users\<username>\Documents\2018-08-03\file.txt

谢谢。

最佳答案

mkdirs() 将为路径中的每个元素创建目录(如果它们不存在)。

因此,您可以使用 file.getParentFile().mkdirs() 不为 file.txt 创建目录

编辑:需要考虑的事情

mkdirs() 仅在实际创建目录时返回 true。如果它们已经存在或者创建它们时出现问题,它将返回 false

由于您尝试多次运行此命令以附加到文本中,因此您的逻辑将不会在 if 语句 内运行

我会将其更改为:

boolean created = true;
if(!file.getParentFile().exists()) {
created = file.getParentFile().mkdirs();
}
if (created) {
String outstring = timestampSDF.format(rightNow) + " | " + data + System.getProperty("line.separator");
FileOutputStream fos = new FileOutputStream(file, true);
fos.write(outstring.getBytes());
fos.close();
}

关于java - 无法使用新 File 构造函数的 Parent 和 Child 参数通过 Java 创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51677194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com