1

皆さん、コードを実行しようとしています。これは、WebContent ディレクトリ内の作成済みの .txt ドキュメントに挿入されます。私はApache Tomcat v7.0で実行しています-Eclispeで構築しています。

コード:

  public static void insertWinner(String winner) throws IOException{

        String filename= "Winner.txt";
        FileWriter fw = new FileWriter(filename,true); //the true will append the new data
        fw.write("Winner is" + winner);//appends the string to the file
        fw.close();

    }

これは、上記のコードに文字列値を挿入するためにサーブレット BandListServ.java が呼び出す BandIO という Java ファイル内で行われます。

理由もわかりませんが、これを行っても何も起こりません。

他に情報が必要な場合はお知らせください。ありがとうございます。

編集

私はこれにそれを変更します -

public static void insertWinner(String winner) throws IOException{


        FileWriter out = new FileWriter("Winner.txt");
        out.write("Hello");
        out.close();
        out = new FileWriter("Winner.txt", true);
        out.write(", world!");
        out.close();

    }

編集:

わかりましたので、サーブレットファイル内でこれを試しましたが、葉巻はありません..

             response.setContentType("text/html");


             String filename = "Winner.txt";

             ServletContext context = getServletContext();


             InputStream is = context.getResourceAsStream(filename);
             if (is != null) {
                 InputStreamReader isr = new InputStreamReader(is);
                 BufferedReader reader = new BufferedReader(isr);
                 PrintWriter writer = response.getWriter();
                 String text = "Winner is";


                 while ((text = reader.readLine()) != null) {
                     writer.println(text);
                 }
             }
4

1 に答える 1

2

ファイルシステムへのアクセスは原則として

File file = getServletContext().getRealPath("/Winner.txt");

このファイルは null になる可能性があります。つまり、Web アプリケーションが .war (つまり zip 形式) としてデプロイされ、Web サーバーが war を解凍するように構成されていない場合です。

あなたの場合、ファイルに同時実行の問題があり、ロックが必要になる可能性があります。データベーステーブルを使用する必要があるかもしれません。

また、次回の展開時にファイルが失われる可能性があります。

于 2012-12-15T02:50:38.830 に答える