gpt4 book ai didi

Java:如何创建文件并将其写入maven目标目录

转载 作者:行者123 更新时间:2023-12-02 09:40:53 24 4
gpt4 key购买 nike

目标:尝试创建文本文件并将其写入 Maven 项目中的目标文件夹

方法:

public synchronized void writeToFile(List<String> list, String file) {
String path = MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();

try {
Path out = Paths.get( path + file);
Files.write(out, list, Charset.defaultCharset());
} catch (IOException e) {
e.printStackTrace();
}
}

问题:

  • java.nio.file.InvalidPathException错误

  • 应用程序将部署在不同的系统上,因此路径可能会发生变化

  • 我不知道如何在不检索此错误的情况下返回目标路径

错误:

Exception in thread "main" java.nio.file.InvalidPathException: Illegal char <:> at index 2: /C:/Users/jquinn/IdeaProjects/Exercise1/Word%20Scraper%20-%20Java/target/classes/exclusions.txt
at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
at java.nio.file.Paths.get(Paths.java:84)
at FileManager.writeToFile(FileManager.java:58)
at Driver.main(Driver.java:21)

最佳答案

第一个 / 导致字符串出现问题。如果没有它,您必须获得完整的字符串。

我已经尝试与我的类(class)一起实现它:

String path = Test.class.getProtectionDomain().getCodeSource().getLocation().getPath();
path = path.substring(1, path.length()) + "file.txt";
System.out.println(path);
Path out = Paths.get(path);
System.out.println(out.isAbsolute());

输出:

F:/software/workspace/file.txt
true

关于Java:如何创建文件并将其写入maven目标目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57076935/

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