1

FileOutputStreamオブジェクトを作成しています。コンストラクターの引数としてファイルまたは文字列を取ります。

私の質問は、ファイルの場所の引数として相対URLを指定できますか?それは機能していないようですが、これが可能かどうかを調べようとしています(そうでない場合は試行を停止します) 。

それが不可能な場合、コンストラクターに渡すことができるように、(サーブレットから)現在の場所への(論理URLではなくファイルシステム上の)絶対パスを取得するにはどうすればよいですか。

私の問題の一部は、私の開発ボックスがWindowsであるということですが、これをUnixボックスに公開するので、パスを同じにすることはできません。つまり、Windows C:/....とunix/ usr/..です。

4

3 に答える 3

3

ServletContext.getRealPath(relativePath)

于 2010-04-07T07:00:21.423 に答える
2

これは相対パスで機能するはずですが、現在のディレクトリが何であるかに注意してください。たとえば、Eclipseを使用している場合、現在のディレクトリはプロジェクトディレクトリです(クラスを含むディレクトリではありません)。

于 2010-04-07T07:04:05.370 に答える
1

ファイルjavadocから:

対照的に、相対パス名は、他のパス名から取得した情報の観点から解釈する必要があります。デフォルトでは、java.ioパッケージのクラスは、常に現在のユーザーディレクトリに対して相対パス名を解決します。このディレクトリは、システムプロパティuser.dirによって名前が付けられ、通常、Java仮想マシンが呼び出されたディレクトリです。

編集:Bozhoは正しいです、私はこれがサーブレットであることを読みませんでした。私は彼の答えに従います:

ServletContext.getRealPath(relativePath)

于 2010-04-07T06:59:36.103 に答える