我认为你需要做的是阅读从Web应用程序的javax.servlet.ServletContext
的位置的文件内容。如果使用getContextPath()
,则应该获取Web应用程序的工作目录而不是Java VM。
您也可以尝试使用同一类中的getResource
和getResourceAsStream
方法加载任何文件。
我写这篇文章的时候有点慌,所以我会提供一些信息。
最好的方法是使用getResourceAsStream方法。这使您可以访问您的Web应用程序中的文件。
要从Web应用程序的根目录获取文件foo.txt并将其打印到响应中,可执行以下操作。
public class TestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws javax.servlet.ServletException, java.io.IOException
{
PrintWriter writer = response.getWriter();
// foo.txt is at the root directory of the web app
InputStream in = getServletContext().getResourceAsStream("/foo.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String text;
while ((text = reader.readLine()) != null) {
writer.println(text);
}
}
}
你能否提供一点解释?当你说“当我想从我的代码中读取任何文件时......”你究竟想要做什么? – karlgrz 2010-10-25 03:54:30
这意味着我想要读取文件的内容。它总是说文件未找到,当我试图打印目录时,我得到的是eclipse Directory而不是Project Directory。 – 2010-10-25 03:57:21