1. 假设要读取的1.txt文件在web工程的src目录下:
我们可以采取class对象.getResource(filename).getFile()的方式得到1.txt的磁盘绝对路径
publicvoid doGet(HttpServletRequest request, HttpServletResponseresponse)
throws ServletException, IOException {
String filename = "/1.txt";
filename=ReadFileServlet.class.getResource(filename).getFile();
System.out.println(filename);
BufferedReaderbr = new BufferedReader(new InputStreamReader(
new FileInputStream(new File(filename))));
String content = br.readLine();
System.out.println(content);
}
结果:
/E:/资料/javaweb/apache-tomcat-6.0.14/webapps/MyJsp01/WEB-INF/classes/1.txt
第二种方式 通过
String filename2="/WEB-INF/classes/1.txt"; filename2=this.getServletContext().getRealPath(filename2);
System.out.println(filename2);
结果:
E:\资料\javaweb\apache-tomcat-6.0.14\webapps\MyJsp01\WEB-INF\classes\1.txt
第三种方式:
如果文件在webRoot根目录下可以通过getRealPath(filename)得到绝对磁盘路径
String filename3="/2.txt";
filename3=this.getServletContext().getRealPath(filename3);
System.out.println(filename3);
readFile(filename3);
结果:
E:\资料\javaweb\apache-tomcat-6.0.14\webapps\MyJsp01\2.txt
结论: 在web工程下利用servlet读取文件 要使用绝对磁盘路径