2013-02-19 122 views
1

我很努力在Eclipse的Java項目中引用.dat文件。我的文件結構如下所示:引用Java項目中的.dat文件

enter image description here

我想從我的「LookupCountry.java」文件中引用「GeoIPLite.dat」。當我說「參考」時,我的意思是隻獲取路徑的String對象,然後將其作爲參數發送到位於「引用庫」下的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 
} 

所以基本上我得到的會從罐子說,路徑.dat文件不正確,拋出IOException異常。

任何想法??

+2

是擴展蝙蝠或DAT? – 2013-02-19 17:13:19

+1

.dat!對不起,我沒有專注。感謝您指出這一點 – Tiwaz89 2013-02-19 17:14:25

回答

0

例如,在Eclipse中,當您運行一個類時,將其配置爲'當前文件夾'的位置。從菜單中:運行>運行配置...並選擇您正在使用的那個。

然後點擊'Arguments'選項卡並檢查工作目錄。

enter image description here

你的路徑應該是相對於有顯示的位置。 (在剪切的圖像中顯示默認的項目本身的基礎文件夾。)

您將使用默認工作目錄作爲new File("resources/GeoIPLite.dat")打開文件。

+0

這正是我的也是。不同的課程名稱課程 – Tiwaz89 2013-02-19 17:25:35

0

在您的resource文件夾中使用與您的src文件夾中相同的包裝結構。將您的資源文件夾添加爲Eclipse中的源文件夾(請參閱截圖)。將.dat文件放置在資源文件夾中,相對於將要使用它的類。你應該看到你的資源文件,然後在你的編譯類旁邊。

在代碼中,引用資源文件,像這樣:

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

enter image description here

+0

當你說「相同的包裝結構」。你的意思是'資源'文件夾還應該包含一個包com.deangrobler,它又包含.dat文件? – Tiwaz89 2013-02-19 17:28:07

+0

是的。 'getResource()'將返回一個URL。 – whiskeyspider 2013-02-19 17:28:48

+0

OP從未說過他是如何打開文件的。它可能是一個新的'File(string)'或者'this.getClass()。getResourceAsStream(string)',所需的路徑將會不同。你正在描述在後一種情況下要做什麼。 – 2013-02-19 17:56:22