从与.jar文件位于同一文件夹中的文件读取
有没有办法从与.jar文件位于同一文件夹中的文件读取?我正在尝试创建一个java程序,当我上交作业时,它必须从文件中读取。我不知道一旦我翻转它,文件或程序将被保存在哪里,所以我认为我不能对保存文件的目录进行编码。这可能吗?问题是我必须将文件上传到CSX主机服务器,这是一个Linux服务器,并从那里运行它。如果我不把路径放在文件之前,它会只搜索其当前文件夹位置吗?
有没有办法从与.jar文件位于同一文件夹中的文件读取?我正在尝试创建一个java程序,当我上交作业时,它必须从文件中读取。我不知道一旦我翻转它,文件或程序将被保存在哪里,所以我认为我不能对保存文件的目录进行编码。这可能吗?问题是我必须将文件上传到CSX主机服务器,这是一个Linux服务器,并从那里运行它。如果我不把路径放在文件之前,它会只搜索其当前文件夹位置吗?
您可以通过以下方式获取包含任何特定类的 JAR 文件的位置:
URL url = thisClass.getProtectionDomain().getCodeSource().getLocation();
从那里可以很容易地将URL相对化到所需文件。
如注释中所述,仅当您从 jar 所在的目录运行命令时,此操作才有效。
(在桌面应用程序的上下文中)
要访问 当前目录中的文件,该文件前面应有一个点。例:jar
path
String path = "./properties.txt";
FileInputStream fis = new FileInputStream(path);
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
// Read the file contents...
在此示例中,有一个与 .
此文件将由 中包含的程序读取。
编辑:您说文件名不会更改,并且此答案适用,因为您事先知道该名称,当然,如果您更喜欢硬编码它。properties.txt
jar
jar