如何从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

回到顶部