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








