-2

TomcatでWebサービスを実行していて、fileIOを実行したいと考えています。

File f = new File(test.txt);
new BufferedReader(new FileReader(test.txt));

結果:

java.io.FileNotFoundException: test.txt
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:97)
    at java.io.FileReader.<init>(FileReader.java:58)

私は何かが足りないのですか?コードをローカルスタンドアロンアプリとして実行すると、期待どおりに機能します。ただし、Tomcatでは例外が発生します。

4

3 に答える 3

4

最初にファイルを作成する必要があります。Fileオブジェクトは、実際にはファイル自体ではなく、ファイルのパスの単なる表現です。

f.createNewFile()
于 2012-08-08T17:20:58.327 に答える
2
if (!f.exists())  
{  
   f.createNewFile();   
}
于 2012-08-08T17:24:06.483 に答える
0

コードをローカルスタンドアロンアプリとして実行すると、期待どおりに機能します。ただし、Tomcatでは例外が発生します。

作業ディレクトリからの相対パスを使用しています。スタンドアロンアプリとして実行する場合、アプリを実行するディレクトリにファイルがあると想定します。多くの場合、Webサーバーの作業ディレクトリはサーバーのディレクトリであるためbin、ファイルがそこにあることを期待していると言っています。

フルパスを使用するか、アプリケーションのリソースをgetResourceAsInputStream()で使用することをお勧めします。

于 2012-08-08T18:13:22.640 に答える