如何从servlet过滤器写入文件并在Eclipse中读取它?
我想从我的过滤器写入一个文件,然后能够在Eclipse中读取它,以确保我已正确写入它。如何从servlet过滤器写入文件并在Eclipse中读取它?
此代码编译并运行良好,但我不知道我可以去哪里阅读文件,或者如果我什至写过任何东西。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request;
System.out.println("filter invoked");
InputStream in = null;
OutputStream out = null;
String inPath = context.getRealPath("/WEB-INF/template.txt");
String outPath = context.getRealPath("/WEB-INF/output.txt");
in = new FileInputStream(inPath);
out = new FileOutputStream(outPath);
OutputStreamWriter outstream = new OutputStreamWriter(out);
outstream.write("hello");
// pass the request along the filter chain
chain.doFilter(request, response);
}
文件template.txt和output.txt位于WEB-INF目录中。我已经证实,从文件中读取正常工作,但我无法验证写入他们。每次我写入output.txt时,文件仍然没有改变。
我对Web应用程序环境中的文件写入了解不甚了解?
回答:
你必须关闭你的流(它也会刷新它)(在finally
块中这样做)。顺便说一句,你可以使用commons-ioFileUtils
或guavaFiles
这将使更容易的文件的处理
然而,一般的做法是不是在webapp目录中写入文件,因为你会失去他们在接下来的重新部署。选择/配置一个外部位置来存储它们。
回答:
另外不要忘记把它包裹进去试试finally块。
OutputStreamWriter outstream = new OutputStreamWriter(out); try {
outstream.write("hello");
} finally {
outstream.close();
}
以上是 如何从servlet过滤器写入文件并在Eclipse中读取它? 的全部内容, 来源链接: utcz.com/qa/259437.html