如何将文件保存到类路径 [已关闭]
如何保存/加载位于我的类所在的文件?我之前没有到那个位置的物理路径,我想动态地找到那个文件。
我想加载一个XML文件并写入和读取它,但我不确定如何解决它。
如何保存/加载位于我的类所在的文件?我之前没有到那个位置的物理路径,我想动态地找到那个文件。
我想加载一个XML文件并写入和读取它,但我不确定如何解决它。
使用 ClassLoader#getResource()
或 getResourceAsStream()
将它们作为类路径或从类路径中获取。URL
InputStream
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("com/example/file.ext");
// ...
或者,如果它与当前类位于同一包中,则还可以按如下方式获取它:
InputStream input = getClass().getResourceAsStream("file.ext");
// ...
拯救是一个不同的故事。如果文件位于 JAR 文件中,则此操作不起作用。如果可以确保文件已展开且可写,则 将 from 转换为 。URL
getResource()
File
URL url = classLoader.getResource("com/example/file.ext");
File file = new File(url.toURI().getPath());
// ...
然后,您可以使用它构造一个FileOutputStream
。
您可以尝试以下操作,前提是您的类是从文件系统加载的。
String basePathOfClass = getClass()
.getProtectionDomain().getCodeSource().getLocation().getFile();
要获取该路径中的文件,您可以使用
File file = new File(basePathOfClass, "filename.ext");