Java 将textarea内容从jsp页面写入文本文件
我有一个jsp页面,它有一个文本区域和提交按钮 form.jspJava 将textarea内容从jsp页面写入文本文件,java,jsp,writetofile,Java,Jsp,Writetofile,我有一个jsp页面,它有一个文本区域和提交按钮 form.jsp <form method="post" action="submitForm"> <label for="commentTxt">Comments: </label><br /> <textarea rows="20" cols="100" id="commentTxt" name="commentTxt"
<form method="post" action="submitForm">
<label for="commentTxt">Comments: </label><br />
<textarea rows="20" cols="100" id="commentTxt" name="commentTxt"
placeholder="Enter your comments."></textarea><br />
<input type="submit" name="submit" value="Submit" />
</form>
FilesRW.java
public static void writeStrTxt( String str){
FileWriter fileWriter = null;
try{
FileWriter wr = new FileWriter( new File("userComments.txt"));
System.out.println(str);// this line print user comments in console
wr.write(str);
wr.close();
}catch (IOException exe) {
exe.printStackTrace();
}
}
我不知道是什么问题,因为用户注释被发送到fileRW类,我可以将其打印到控制台并查看用户注释。但是,当我打开文件时,它是空的。另外,当我尝试在同一个类(FilesRW.java)的main中使用writeStrTxt(String)方法时,它会工作,并向文件写入文本
我需要在servlet类(submitForm.java)中调用此方法,但它不会将文本写入文件。我的代码有什么问题?请在关闭之前尝试调用wr.flush()
请参见更改
System.out.println(str);
到
并验证是否没有第二个空请求。路径与类的文件夹相同,因此路径正常,但文件仍然为空,您使用的是相对路径。它与Java进程的启动位置有关,在本例中为Tomcat/bin。请在那里查找文件。正如@Aleksey Bykov所建议的,您可以使用绝对路径。您可以使用getRealPath方法。问题在于写入文件,而不是控制台。是的,但您可能会向文件写入两次。首先删除注释,然后用空文本覆盖它。但这只是一个暗示。
System.out.println(str);
System.out.println("* "+str);