?
问题:前几天,碰到了需要从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(); } } } } } }? 工程目录结构图: