读取工程中的配置文件

1. 读取web工程下的资源文件 

方式一 获得绝对路径

String realpath = ServletContext.getRealPath("相对web应用的路径") ; 

方式二 获得与文件相关联的流 (2.1与2.2是一样的)

2.1 InputStream in = ServletContext.getResourceAsStream("WEB-INF/classes/config.properties") ;

2.2 URL url = ServletContext.getResource("WEB-INF/classes/config.properties") ;

InputStream in = url.openStream();

2. 读取java工程下的文件

 

图示 

// 不能相对虚拟机目录 不能用绝对路径

// 使用类加载器的方式读

ClassLoader classLoader = Demo.class.getClassLoader(); 

// 获得流 

InputStream in = classLoader.getResourceAsStream("a.txt") ;

// 获得绝对路径 

URL url = classLoader.getResource("a.txt") ;

类加载的方式:加载到内存之后进行读写

1. 不能读 类路径以外 的 文件

2. 不能读 较大 的 文件

3. 不能读 硬盘资源文件 的 修改

补充一点:(注意区分)

System.out.println(InputTest.class.getResource("")); 

这种方式得到的路径是类所在的url路径 

System.out.println(InputTest.class.getResource("/")); 

这种方式得到的路径是类路径的url路径 

原文地址:https://www.cnblogs.com/Knuth/p/2481449.html