- PR -

tomcatでファイルの読み込みや書き込みを指定した時のパスについて

1
投稿者投稿内容
ダメ猫
常連さん
会議室デビュー日: 2004/02/20
投稿数: 45
投稿日時: 2004-03-17 19:17
こんにちはダメ猫です。

TomcatでFileOutputStreamやBufferedReaderなどを使ってファイルの相対パスを指定すると、なぜか「C:」から始まってしまいます。

 クラスのパス C:\eclipse\workspace\hogehoge\WEB-INF\src\AddDate.java
        http://localhost:8080/hogehoge/servlet/AddDate.java

 BufferedReader in = new BufferedReader(/Data.dat"));
 
 この時には C:/Data.dat にファイルができてしまいます。

これでは開発環境からサーバに置く度にパスの設定をしなくてはいけなくなってしまいます。
何とか相対パスが指定できるようにはできないでしょうか?
どなたかご教授ください。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-03-17 19:23
相対パスで表現するなら ".."+file.pathSeparator とか "."+file.pathSeparator とか表現すればいいんじゃないでしょうか?
/ から始まっていたらそのボリュームのルートレベルを指しますので、期待通りの動作をしてるかと思います。
Cluster
ぬし
会議室デビュー日: 2003/03/06
投稿数: 289
お住まい・勤務地: 大阪
投稿日時: 2004-03-17 19:50
ServletContext.getRealPath を使えばいいんじゃないですか?

http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/ServletContext.html#getRealPath(java.lang.String)
ダメ猫
常連さん
会議室デビュー日: 2004/02/20
投稿数: 45
投稿日時: 2004-03-17 20:02
返信ありがとうございます。

皆様のおかげで解決いたしました。
1

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