【问题标题】:Java- relative path of text file in main?Java-main中文本文件的相对路径?
【发布时间】:2013-03-07 20:48:51
【问题描述】:

我想知道如何为存储在我的 java 项目的 src 文件夹中的文本文件指定相对路径名。我想用这个文本文件的路径存储一个字符串。例如,如果我的 java 项目的 src 文件夹中有 example.txt,我将如何找到它的相对路径?我也在我的 main 中这样做,所以我在使用 .getResource() 时遇到了麻烦。我该怎么做?谢谢。

我的文件路径如下来自eclipse中的属性 /MyProject/src/data.txt

我试过了:

字符串路径 = "/MyProject/src/data.txt";

但这不起作用?

【问题讨论】:

  • 该文件必须位于将要执行的 java/jar 文件的相对路径中,而不是源的相对路径中。
  • 您使用的是安卓系统吗?还是纯 Java?
  • 你能发布你的代码来看看你做了什么吗?
  • 当我遇到关于“找不到指定的文件”的错误时发现了这篇文章,然后我在几次尝试后意识到文件名应该是小写的,就像 yourfile.fileextension 中一样。

标签: java file-io relative-path


【解决方案1】:

如果您使用的是 eclipse,请将您的文本文件放在项目文件夹的根目录中,在 /src 和 /bin 文件夹之外。现在应该可以通过相对路径直接访问它了。

如果要访问 src 文件夹中的文件,则必须在文件路径/名称前附加 /src/ 前缀

【讨论】:

  • 这就是我要找的。将它放在 src 文件夹之外是可行的。
  • 在 windows 中访问 src 文件夹中的 a.txt 文件使用“src/a.txt”而不是“/src/a.txt”
【解决方案2】:

在文件路径/名称前使用src/ 前缀。

String path = "src/data.txt"; 

【讨论】:

    【解决方案3】:

    路径是相对于你执行“java”命令的目录。例如

     /opt/projects/myproject>$ java -cp <whatever your classpath is that contains your class files> com.mycompany.mypackage.MyJavaClass
    

    在这种情况下,MyJavaClass 会找到与目录相关的文件
    /opt/projects/myproject

    如果您愿意,还有另一种方法可以做到这一点:您可以使用通过类路径机制找到的加载资源。

     getClass().getResource("foo.txt");
    

    您可以查看此帖子了解更多信息

    Preferred way of loading resources in Java

    【讨论】:

    • 你不能在静态方法中使用“this”
    • getClass 在静态上下文中不可用。
    猜你喜欢
    • 2013-06-27
    • 2018-05-04
    • 2012-01-28
    • 2013-09-06
    • 2013-10-29
    • 2012-06-19
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多