0

以下は、ディレクトリとそのディレクトリ内にテキスト ファイルを作成しようとするサーブレットです。

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    String s = request.getServletContext().getRealPath("/");
    PrintWriter out = response.getWriter();
    FileMaker fm  = new FileMaker();
    fm.makeDirectoryTester();
}

ディレクトリとその中にテキストファイルを作成するクラス:

public void makeDirectoryTester() {
    try {
        File f = new File("FlushTester/");
        if(!f.exists()) {
            boolean b = f.mkdir();
            System.out.println("Directory Made (Inside makeDirectoryTester) --> " + b);
            PrintWriter writer = new PrintWriter("FlushTester/TESTER.txt");
            writer.println("This is the first statement");
            writer.println("This is the second statement");
            writer.println("This is the third statement");
            writer.close();
        }
    }catch(Exception exc) {
        exc.printStackTrace();
    }
}

問題は、ブール値のf.mkdir()が返さtrueれることですが、作成されたディレクトリやその中のファイルが表示されないことです! 何故ですか ?サーバーとしてTomcatを使用しています。この理由は何ですか?

4

1 に答える 1

1

File f = new File("FlushTester/");ファイルを使用する場合は、アプリケーションの開始点に相対的です。tomcat の場合、通常はbinディレクトリです。

他の場所で必要な場合は、絶対パス (おそらく何らかの方法で構成されている) を使用するか、Tomcat のbinディレクトリからの相対パスを使用する必要があります。

于 2013-01-30T14:22:17.220 に答える