2014-02-27 63 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