Java 获取类路径中的文件
我正在尝试使用类路径访问文件,如下所示:Java 获取类路径中的文件,java,file,io,Java,File,Io,我正在尝试使用类路径访问文件,如下所示: String path = getClass().getProtectionDomain().getCodeSource() .getLocation().toString(); File test = new File(path); File table = new File(test, "testFile.xlsx"); 我这样做是因为我需要创建一个Jar,如果这个文件在同一个文件夹中,它将读写这个文件 我得
String path = getClass().getProtectionDomain().getCodeSource()
.getLocation().toString();
File test = new File(path);
File table = new File(test, "testFile.xlsx");
我这样做是因为我需要创建一个Jar,如果这个文件在同一个文件夹中,它将读写这个文件
我得到这个错误:
java.io.FileNotFoundException: "myFilepath" (The filename, directory name, or volume label syntax is incorrect)
如果我在文件浏览器中复制并粘贴myFilepath,它会显示我的文件。有人知道我做错了什么,或者我可以改进我的方法吗 您不能访问类路径中的文件,但可以从类路径获取资源流并从中读取内容。您需要查看这个答案,而不是试图获取类路径名,创建一个文件对象,然后使用getAbsolutePath()方法获取其绝对路径。这将给出运行代码的源文件的路径 请尝试以下代码:-
java.io.File f = new java.io.File("H");
String path;
path = f.getAbsolutePath();
path = path.substring(0, (path.length() - f.getName().length()));
f.deleteOnExit();
字符串路径将包含您的类文件目录路径。我尝试了此方法,但出现了相同的错误。请尝试上述代码,看看您是否获得了绝对类文件路径,但没有带有“path”变量的类名。这将我带到项目文件夹,该文件包含在src/main/resources中。如果文件与jar位于同一文件夹中,我将如何使其工作?请尝试通过连接将jar文件文件夹名称与此路径一起添加,然后使用新目录,查看其是否工作。然后编译的类文件与jar文件相同,从而达到类文件路径,如果我按照您建议的方式访问该文件:InputStream=Test.class.getResourceAsStream(“/SomeTextFile.txt”);然后如何创建一个FileOutputSteam来写入对此文件的更改?通常,您会读取jar中某个文件的内容(我们称之为资源)。之后您到底想做什么,修改jar中的文件?执行程序后需要访问该文件。您需要进一步澄清您的问题,添加更多的上下文并解释意图,而不仅仅是需要完成的实际“事情”。(否则我会投你反对票)@DavidHofmann我可以访问excel电子表格。我编辑此电子表格的内容。我将此电子表格的更改保存到原始文件中。此应用程序适用于非开发人员。他需要能够运行可执行文件,然后打开电子表格查看数据。这就是所有的上下文,我将非常感谢您的一些见解,而不是向下/向上投票。该应用程序应该在加载文件的文件系统中打开一个文件,修改该文件并保存它。是这样吗?