通过获取流对象的解决方法,从WEB中读取应用资源的Java实例。对初学者很有帮助,请详细阅读下文。
问题:前几天,碰到了需要从web应用读取文件内容的问题。一般的,配置文件都放在工程src目录下,那样读起来也很方便,对于大多数人都是这种习惯。但这次偏偏就放在WebContent目录下的子目录里,虽然郁闷,问题还是要解决的。因此在此聊记一笔。
解决方法:XXX.class.getResourceAsStream(Path)获取流对象,要明白部署后目录的变化
实例:
- import java.io.IOException;
 - import java.io.InputStream;
 - import javax.servlet.ServletContextEvent;
 - import javax.servlet.ServletContextListener;
 - public class MyListener implements ServletContextListener {
 - @Override
 - public void contextDestroyed(ServletContextEvent arg0) {
 - }
 - @Override
 - public void contextInitialized(ServletContextEvent event) {
 - //指定要读取的文件路径,此处的test.txt放在工程的web目录下面
 - InputStream is = MyListener.class.getResourceAsStream("/../../web/test.txt");
 - if(is!=null){
 - byte []bytes = new byte[1024];
 - try {
 - while(is.read(bytes)>0){
 - System.out.println(bytes.toString());
 - }
 - } catch (IOException e) {
 - e.printStackTrace();
 - }finally{
 - if(is!=null){
 - try {
 - is.close();
 - } catch (IOException e) {
 - e.printStackTrace();
 - }
 - }
 - }
 - }
 - }
 - }
 
                


