**注意:**javaweb中一些配置文件的读取,一般都保存在src目录下,当配置文件第一次创建的时候会在bin目录下生成一个相同的文件,如果手动删除了bin目录下生成的配置文件,则不会再次生成,必须重新再src目录下创建才会再次生成。项目发布到tomcat中之后,会在WEB-INF下的classes下生成配置文件。
下面是两种读取配置文件的方法:
1、使用ServletContext对象中的方法读取
**InputStream getResourceAsStream(String filepath)**获取配置文件的输入流。
**String getRealPath(String path)**获取配置文件的绝对路径。
2、使用类加载器读取配置文件
**getClassLoader()**获取类加载器
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import javax.servlet.ServletContext;
/**
* 读取web项目下的配置文件
* @author zhw
*/
public class ReadFileUtils {
private ReadFileUtils() {}
/**
* 类的加载器读取web项目下的配置文件
* @param fileName 文件名
* @return InputStream
*/
public static InputStream readFile(String fileName) {
return ReadFileUtils.class.getClassLoader().getResourceAsStream(fileName);
}
/**
* 通过getResourceAsStream()方法获取对应文件名的字节输入流
* @param context ServletContext对象
* @param fileName 文件名
* @return InputStream
*/
public static InputStream readFile(ServletContext context,String fileName){
return context.getResourceAsStream("/WEB-INF/classes/"+fileName);
}
/**
* 通过getRealPath()方法获取对应文件名的绝对路径,在获取字节输入流
* @param context ServletContext对象
* @param fileName 文件名
* @return InputStream
* @throws FileNotFoundException
*/
public static InputStream readRealPathFile(ServletContext context,String fileName) throws FileNotFoundException{
String realPath = context.getRealPath("/WEB-INF/classes/"+fileName);
return new FileInputStream(realPath);
}
}