2012-01-10 66 views
1

我正在開發一個Java協作項目,並認爲將它作爲一個嵌入在網頁中的applet是最容易的,然後每個人都可以添加他們的子類(獎金,敵人等)各自的文件夾。爲了做到這一點,我希望小程序檢查網站上的文件夾,收集每個文件夾中文件的名稱,然後將這些類的名稱放入數組中,因爲它們都是從中隨機生成的。如何獲取java applet中的文件列表?

我最初嘗試製作一個File對象並調用.listFiles()以將其獲取到數組中,但該文件對象無法識別我給它的路徑getCodeBase().toString()+"bonus.txt",所以我試着將所有的名稱將放在.txt文件的文件夾中的類,打開文件以及讀取每行。這可以在eclipse中使用,但是當我將.class和.txt文件上傳到網站時,我得到了一個權限錯誤,所以我把這個類放到了一個.jar中,自簽名並再次上傳,但applet不起作用,它只是凍結。
任何時候,我沒有一個文件retreval語句,在一個.jar中,該applet將工作得很好,但如果我有這些代碼行,它會凍結或發生錯誤。

我試過new scanner(new file("bonus.txt")); 通過谷歌的類似問題發現緩衝讀者的不同變化,以及通過File類加載地址的不同方式,但他們都沒有工作。

我一直在試圖讓applet做到這一點只是加載一個.txt文件(與.class文件位於同一目錄中),讀取內容並將它們打印到applet中,但沒有成功。非常感謝,如果你能指出我在正確的方向。

+0

@Thompson嗯,是的,我對java很缺乏經驗。這是我所做的第一批項目之一,並且認爲我的上述方法可以使協作變得更簡單,因爲我正在與其他人一樣或者經驗不及我。這就是爲什麼我認爲applet最簡單的原因,不是因爲applet很容易製作,因爲我已經知道它們可能是一個痛苦。感謝您的迴應。 – phaze0 2012-01-10 12:54:20

回答

3

由(可信)applet建立的File將指向最終用戶計算機文件系統上的一個位置(可能不存在)。 File對象可以從來沒有指向服務器,這不是他們如何工作。

要從applet訪問資源,通常會使用URL。例如。

URL urlToList = new URL(getCodeBase(), "bonus.txt"); 
Scanner scanner = new Scanner(urlToList.openStream()); 

請注意,這兩行都不需要applet被簽名/信任。

相關問題