2012-02-22 74 views
4

無論何時我使用​​使用​​讀取或寫入servlet中的文件時,我所得到的路徑都在eclipse文件夾內。我不知道發生了什麼。有沒有人有任何想法,我面臨的問題。從小服務器讀取外部文件

+1

可能重複[getResourceAsStream()vs FileInputStream](http://stackoverflow.com/questions/2308188/getresourceasstream-vs-fileinputstream) – BalusC 2012-02-22 13:52:38

回答

2

基本上你不應該只在servlet中使用相對文件名:servlet容器會爲你提供某些目錄位置的映射,如果你需要其他的東西,你應該在你的servlet參數中指定它。

例如,請看ServletContext.getRealPath

如果你可以告訴我們更多關於你想要做的事情,那會有幫助。

2

如果是用於讀取配置文件,您應該使用ServletContext.getResourceAsStream(java.lang.String path),該方法將從您引用的資源中返回一個InputStream,並建議您將這些文件保存在WEB-INF文件夾下。

如果要編寫文件,應始終提供(最好在可配置位置)要寫入的目錄的絕對路徑,並確保它存在並具有適當的權限以執行此操作。

0

這是因爲eclipse的默認工作目錄是項目文件夾。如果妳想要使用相對路徑寫在指定的文件夾中的文件,我建議你這樣做:

  1. 進入「運行」菜單在Eclipse
  2. 選擇「運行配置...」
  3. 點擊「參數」選項卡
  4. 在參數選項卡下設置工作目錄。選擇「其他」並指定一個目錄。

這意味着您的項目假裝在指定的目錄中運行。

希望我幫了好運。