2014-02-27 99 views
1

我在JDeveloper中工作並創建了Web Fusion應用程序。我有一個託管bean,在其中一個方法中,我想從我的自定義文件中讀取數據(就像Scanner一樣)。我該怎麼做?我應該在哪裏放置這個文件在我的項目中?從託管bean中的文件讀取

+0

你希望用戶上傳,或只是讀位於你的應用程序中的文件? –

+0

只是我的應用程序中的文件 – Zmiter

+0

檢查我的答案;) –

回答

1

您應該在web內容中創建一個文件夾。然後在那裏手動複製您的文件(轉到c:/ Oracle/MiddleWare/Jdeveloper/Jdev/myWork/YourApp/ViewController ...)。回到JDeveloper中刷新您的應用程序,您應該在新文件夾中看到新文件。然後你將它簡稱爲「/MyFolder/myfile.txt」或其他任何東西。

編輯

public ServletContext getContext() { 
    return (ServletContext)getFacesContext().getExternalContext().getContext(); 
} 
ServletContext context = getContext(); 
InputStream fs = context.getResourceAsStream("/Folder/file"); 
+0

只是遵循你的建議。但在此代碼中,請嘗試使用 StringBuilder res = new StringBuilder(); 掃描儀掃描=新掃描儀(新文件(「/ folder/file.txt」)); while(scan.hasNext()) res.append(scan.nextLine()); scan.close(); return res.toString(); (FileNotFoundException e) } (System.out.println(e); 返回「錯誤」; }' FileNotFoundException被拋出。我很傷心:_( – Zmiter

+0

試試這個:ServletContext context = getContext(); InputStream fs = context.getResourceAsStream(「/ Folder/file」); –

+0

是的,它似乎是解決方案,但我試過 ServletContext context =(ServletContext)FacesContext.getCurrentInstance(); 但它拋出ClassCastException。我不知道在哪裏採取ServletContext – Zmiter

0

你的意思是從文件中讀取 - 只需要使用Java文件API

Java read from a file

+0

是的,我提到掃描儀類。但問題出在哪裏把這個文件 – Zmiter