我是使用Java for web服務器的全新軟件,我正在編寫一個非常基本的應用程序,它將微文件寫入文件,稍後將調用該文件並顯示。 (我知道一個數據庫會更好,但這是一個任務,我們正在使用文件I/O來保持簡單。)BufferedWriter不會拋出任何錯誤,但文件是空的
這裏是我的servlet中接收表單的方法,並寫入數據到我的文件:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String content = request.getParameter("postContent");
Calendar cal = new GregorianCalendar();
int day = cal.get(Calendar.DAY_OF_MONTH);
int month = cal.get(Calendar.MONTH) + 1; //add one because the Calendar class numbers months 0-11
int year = cal.get(Calendar.YEAR);
int hour = cal.get(Calendar.HOUR);
int minutes = cal.get(Calendar.MINUTE);
String dateTime = Integer.toString(month) + "/" + Integer.toString(day) + "/" + Integer.toString(year) + " " + Integer.toString(hour) + ":" + Integer.toString(minutes);
String user = request.getSession().getAttribute("username").toString();
ServletContext servletContext = request.getSession().getServletContext();
String path = servletContext.getRealPath("/posts.txt");
//String path = getServletContext().getRealPath("/posts.txt");
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(path, true));
writer.write(user);
writer.newLine();
writer.write(dateTime);
writer.newLine();
writer.write(content);
writer.close();
}catch(IOException ex){
System.out.println(ex.getMessage());
}
response.sendRedirect("listPosts.jsp");
}
當我運行應用程序,寄託都順利,我結束了重定向到listPost.jsp
,但我的文件是空白的。我已經看過其他問題,但我正在做所有我知道的事情。我是否設置了BufferedWriter?我可以在錯誤的地方有posts.txt嗎? (它位於WebContent文件夾中)。
在此先感謝。
UPDATE 的path
變量的值如下: /home/[myusername]/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/forum/posts.txt
UPDATE 我現在知道,我可以從posts.txt
閱讀,所以這告訴我,該應用程序是不是很難找到它。
我從下面的代碼文件中讀取:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String path = getServletContext().getRealPath("posts.txt");
BufferedReader reader = new BufferedReader(new FileReader(path));
String username = reader.readLine();
String dateTime = reader.readLine();
String postContent = reader.readLine();
reader.close();
request.setAttribute("username", username);
request.setAttribute("dateTime", dateTime);
request.setAttribute("postContent", postContent);
request.getRequestDispatcher("/listPosts.jsp").forward(request, response);;
}
查看我更新的帖子。 – MockerTim
當您嘗試寫入或打開文件時,是否發生此任何異常。 –
@FrankZHENG不,完全沒有錯誤。 –