- PR -

サーブレットでファイルの読み書きする場所の指定方法

1
投稿者投稿内容
kon
会議室デビュー日: 2005/03/18
投稿数: 14
投稿日時: 2005-05-18 13:34
JavaServletで、ファイルの指定方法がうまくいかず苦戦しております。
WorkPath、WorkDirという呼び方がいいかわかりませんが、格納する
場所の指定を行いたいのですが。

ファイルを格納する処理

FileOutputStream fos = new FileOutputStream("hello.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos , "MS932");
BufferedWriter bw = new BufferedWriter(osw);
String msg = "こんにちは 世界";
bw.write(msg);
bw.close();
osw.close();
fos.close();

のようなプログラムを実行したときに、ファイルが作成する場所が

1、EclipseのTomcatプラグインでTomcatを起動しServletの中で上記を実行したとき
2、Tomcatのstratup.batでTomcatを起動しServletの中で上記を実行したとき

により、作成する場所が異なってしまします。


1は、Eclipseの所に
2は、Tomcatがインスツールされているbinの所に
作成されます。

(Eclipseの下のworkspaceの中のfileAccseのパッケージのFileWriteクラスで行ったとき)
c:\\
+Eclipse  1の時はここに作られる
+workspace
+fileAccse
+FileWrite  クラス
c:\\
+tomcat-5.0.28
+bin 2の時はここにつくられる

Eclipseでデバッグし、実際は、TomcatのBatで走らせたいので
これらを合わせたいと考えています。

処理が、深いところで行っているので、
getServletContext().getRealPath();
は使用したくないのですが。

いろいろやってみたのですが、うまくいきません。
よろしくお願いします。

環境は:Eclipse 3.0.1、Tomcat 5.0.28、Win2000
です。

引用プログラム
http://www.hellohiro.com/fileio.htm
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-05-18 13:57
Servlet のマナーではテンポラリディレクトリは (File)context.getAttribute("javax.servlet.context.tempdir") で取得することになっています。
1

スキルアップ/キャリアアップ(JOB@IT)