【问题标题】:Referencing a .dat file in Java project在 Java 项目中引用 .dat 文件
【发布时间】:2013-02-04 11:35:43
【问题描述】:

我正在努力在 Eclipse 的 java 项目中引用 .dat 文件。我的文件结构如下:

我正在尝试从我的“LookupCountry.java”文件中引用“GeoIPLite.dat”。当我说“引用”时,我实际上是指获取路径的字符串对象,然后将其作为参数发送到位于 jar 中的“引用库”下的类。

我在 LookupCountry.java 中的代码如下:

try{
    String dbFile = "../resources/GeoIPLite.dat"
    
    // TRIED ALL THESE AS WELL:
    //String dbFile = "/../resources/GeoIPLite.dat"
    //String dbFile = "/resources/GeoIPLite.dat"
    //String dbFile = "resources/GeoIPLite.dat"
    
    //Some more code calling the jar file......

}catch(IOException e){
    //Handles exception
}

所以基本上我得到一个从 jar 中抛出的 IOException,说 .dat 文件的路径不正确。

有什么想法吗??

【问题讨论】:

  • 扩展名是bat还是dat?
  • .dat !对不起,我没有专注。感谢您指出这一点

标签: java eclipse path filereference


【解决方案1】:

resource 文件夹中使用与在 src 文件夹中相同的包结构。将您的资源文件夹添加为 Eclipse 中的源文件夹(参见屏幕截图)。将 .dat 文件放在资源文件夹中,相对于要使用它的类。你应该看到你的资源文件,然后是你编译的类。

在您的代码中,像这样引用资源文件:

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

【讨论】:

  • 当你说“相同的包结构”时。您的意思是“资源”文件夹还应该包含一个包 com.deangrobler,该包又包含 .dat 文件?
  • 是的。 getResource() 将返回一个 URL。
  • OP 从未说过他是如何打开文件的。它可以是新的File(string)this.getClass().getResourceAsStream(string),所需的路径会有所不同。您正在描述在后一种情况下要做什么。
【解决方案2】:

例如,在 Eclipse 中,当您运行一个类时,您可以将其配置为“当前文件夹”的位置。从菜单中:Run > Run Configuration ... 并选择您正在使用的那个。

然后单击“参数”选项卡并检查工作目录。

您的路径应该相对于那里显示的位置。 (在剪辑的图像中,它显示了默认的项目本身的基本文件夹。)

您可以使用默认工作目录以new File("resources/GeoIPLite.dat") 的身份打开文件。

【讨论】:

  • 我的也是这样。当然不同的项目名称
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
  • 2019-10-30
  • 1970-01-01
相关资源
最近更新 更多