Java:无法获取文件的绝对路径

时间:2019-01-21 10:20:47

标签: java

下面是我的项目,

projectName
    -package
      - Util.java
      - Test.json

在Util.java中,我需要从Test.json文件中读取内容并进行解析。 因此,我使用:

File currentfile = new File("");//get the current path
String absJsonPath  = currentfile.getAbsolutePath() + "/Test.json";

当我使用主要方法进行测试时,它不起作用。问题是/ src / package丢失在获取的文件路径中,并且我刚刚得到了项目的路径

而且,当我将项目部署到weblogic服务器时,又遇到了另一个新错误,获得的当前路径如下:

.../DefaultDomain/.

我只想要文件系统中与服务器无关的文件路径。

对此我该怎么办?谢谢!

4 个答案:

答案 0 :(得分:2)

将文件放入资源文件夹并按以下方式获取:

//Get file from resources folder
  ClassLoader classLoader = getClass().getClassLoader();
  File file = new File(classLoader.getResource("Test.json").getFile());

要阅读内容,可以使用以下内容:

StringBuilder result = new StringBuilder("");

try (Scanner scanner = new Scanner(file)) {

    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        result.append(line).append("\n");
    }

    scanner.close();

} catch (IOException e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

这不是CanonicalPath()的绝对值。检查一下,让我知道是否有帮助。

答案 2 :(得分:0)

尝试此操作以获取当前路径

  

string currentPath = System.getProperty(“ user.dir”);

答案 3 :(得分:0)

如果要读取特定程序包中的文件。您可以使用

File jsonFile = new File(getClass().getResource("/Test.json").getFile());