我認爲你需要做的是閱讀從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