gpt4 book ai didi

java - 如何默认在桌面上的特定文件夹中创建文件

转载 作者:太空宇宙 更新时间:2023-11-04 06:12:28 24 4
gpt4 key购买 nike

我正在尝试使用用户输入的数据创建一个文件。但是,我希望每次用户运行它时都将其保存在桌面上的新文件夹中。我怎样才能做到这一点?

package my.io;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Scanner;

public class BufferReader {

public static void main(String args[]){

System.out.print("Please enter your text!!: ");
Scanner ip = new Scanner(System.in);
String text = ip.nextLine();
FileWriter fWriter = null;
BufferedWriter writer = null;
try {
fWriter = new FileWriter("text.txt");
writer = new BufferedWriter(fWriter);
writer.write(text);
writer.newLine();
writer.close();
System.err.println("Iput of " + text.length() + " characters was saved on Desktop.");
System.out.println("Text you have entered is:" + (ip.nextLine()));
} catch (Exception e) {
System.out.println("Error!");
}

}

}

最佳答案

首先你需要知道桌面在哪里,你可以使用类似...

File desktop = new File(System.get("user.home") + File.separator + "Desktop");

现在,显然,这是针对 Windows 的,对于 MacOS,您可以遵循类似的操作,但您需要在 user.home 上下文中验证位置...

现在您有了桌面路径,您可以简单地使用以下内容创建一个文件夹...

File outputFolder = null;
do {
outputFolder = new File(desktop, new SimpleDateFormat("yyyy-MM-dd HH:mm.ss").format(new Date()));
} while (outputFolder.exists());
if (!outputFolder.mkdirs()) {
System.err.println("Failed to create output folder " + outputFolder);
}

现在,这只是创建具有秒精度时间戳的文件夹。给目录一个更有意义的名称可能会很好,但这取决于需要......

下面的例子稍微复杂一些,它基本上列出了桌面中的所有目录,这些目录以预定的predix开头。

然后它会循环并确定最大数字后缀,并使用序列中的下一个数字创建一个新目录,这意味着如果您删除一个目录,它不会尝试覆盖现有目录...

String prefix = "Test";

File[] folders = desktop.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isDirectory()
&& pathname.getName().startsWith(prefix);
}
});

System.out.println(folders.length);

int max = 0;
for (File folder : folders) {
String name = folder.getName();
name = name.substring(prefix.length()).trim();
System.out.println(name);

max = Math.max(max, Integer.parseInt(name));
}
max++;

String suffix = String.format("%04d", max);

File output = new File(desktop, prefix + " " + suffix);
System.out.println(output);
if (!output.exists() && !output.mkdirs()) {
System.out.println(output + " not created");
}

关于java - 如何默认在桌面上的特定文件夹中创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28533281/

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