我從getResourceAsStream()
得到一個InputStream
,並且我設法通過將返回的InputStream
傳遞給BufferedReader
來從文件讀取。寫入從getResourceAsStream返回的文件流()
有什麼辦法可以寫入文件嗎?
我從getResourceAsStream()
得到一個InputStream
,並且我設法通過將返回的InputStream
傳遞給BufferedReader
來從文件讀取。寫入從getResourceAsStream返回的文件流()
有什麼辦法可以寫入文件嗎?
不直接,否 - getResourceAsStream()
旨在返回只讀資源的視圖。
但是,如果您知道該資源是可寫入文件,則可以跳過一些圈,例如,
URL resourceUrl = getClass().getResource(path);
File file = new File(resourceUrl.toURI());
OutputStream output = new FileOutputStream(file);
這應該在unix風格的系統上很好地工作,但windows文件路徑可能會導致消化不良。試試看,但是,你可能會好起來的。
有什麼辦法可以寫入 文件嗎?
誰說這是一個文件? getResourceAsStream()
的整個觀點是要將它抽象出來,因爲它可能不是真的。具體而言,資源可以位於JAR文件中,可以從HTTP服務器讀取,或者實際上可以想象的任何實施者都可以讀取。
你真的不應該想要寫入到您的程序分配的一部分資源。在大多數情況下,這在概念上是錯誤的。設置或用戶特定的數據應該轉到Preferences API或用戶的主目錄。
然後有一種方法,我可以訪問一個文件,位於哪裏jsp頁面是?即直接在'Web Pages'文件夾中?從Web服務即 – 2010-05-09 12:27:39
此答案不提供答案。它應該是一個評論。 – dghubble 2013-08-22 22:00:48
不幸的是,我並不確定。我不得不向'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
@Andreas:好的,那就是JBoss的內部虛擬文件系統。這就是爲什麼你試圖做的是不明智的。 – skaffman 2010-05-09 12:50:43
那麼,有沒有什麼辦法可以把文件放在'Web Pages'文件夾中並從我的Web服務讀寫它? (看看我的問題在這裏爲我的文件結構:http://stackoverflow.com/questions/2797162/getresourceasstream-is-always-returning-null) – 2010-05-09 12:52:51