필자는 필자의 필터에서 파일에 글을 쓰고, 필자가 올바르게 작성했는지 확인하기 위해 이클립스에서 읽을 수 있어야한다.서블릿 필터에서 파일에 쓰고 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에 쓸 때마다 여전히 파일이 변경되지 않습니다.
웹 응용 프로그램 환경에서 파일에 쓰는 것에 대해 이해할 수없는 점은 무엇입니까?
finally 블록에서 파일을 닫았습니다. 나는 내 프로젝트의 디렉토리 트리를 새로 고쳤다. /WEB-INF/output.txt를 열었지만 여전히 비어 있습니다. – peter
fileutils/guava 옵션을 사용해 보셨습니까? – Bozho
사실, 나는 포기했습니다. 출력 파일은 어쨌든 임시 였으므로 대신 단순히 StringBuilder를 사용했습니다. 왜 내가 전에 생각하지 않았는지 모르겠다. – peter