2010-05-09 82 views

回答

29

不直接,否 - getResourceAsStream()旨在返回只讀資源的視圖。

但是,如果您知道該資源是可寫入文件,則可以跳過一些圈,例如,

URL resourceUrl = getClass().getResource(path); 
File file = new File(resourceUrl.toURI()); 
OutputStream output = new FileOutputStream(file); 

這應該在unix風格的系統上很好地工作,但windows文件路徑可能會導致消化不良。試試看,但是,你可能會好起來的。

+0

不幸的是,我並不確定。我不得不向'toUri()':'new File(resourceUrl.toURI()。toString());'添加'toString()'。 但是現在,在第三行拋出了一個'FileNoFoundException異常:''vfszip:\ C:\ jboss-5.1.0.GA \ server \ default \ deploy \ IMAss4.war \ WEB-INF \ classes \ wservices \ markers.txt(文件名,目錄名或卷標語法不正確)「' – 2010-05-09 12:42:42

+0

@Andreas:好的,那就是JBoss的內部虛擬文件系統。這就是爲什麼你試圖做的是不明智的。 – skaffman 2010-05-09 12:50:43

+0

那麼,有沒有什麼辦法可以把文件放在'Web Pages'文件夾中並從我的Web服務讀寫它? (看看我的問題在這裏爲我的文件結構:http://stackoverflow.com/questions/2797162/getresourceasstream-is-always-returning-null) – 2010-05-09 12:52:51

10

有什麼辦法可以寫入 文件嗎?

誰說這是一個文件? getResourceAsStream()的整個觀點是要將它抽象出來,因爲它可能不是真的。具體而言,資源可以位於JAR文件中,可以從HTTP服務器讀取,或者實際上可以想象的任何實施者都可以讀取。

你真的不應該想要寫入到您的程序分配的一部分資源。在大多數情況下,這在概念上是錯誤的。設置或用戶特定的數據應該轉到Preferences API或用戶的主目錄。

+0

然後有一種方法,我可以訪問一個文件,位於哪裏jsp頁面是?即直接在'Web Pages'文件夾中?從Web服務即 – 2010-05-09 12:27:39

+3

此答案不提供答案。它應該是一個評論。 – dghubble 2013-08-22 22:00:48

相關問題