- PR -

FileOutputStreamを使ったファイル作成について

1
投稿者投稿内容
忍者鳥取県
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 61
お住まい・勤務地: リオネジャネイロの地下6000Km
投稿日時: 2003-12-02 13:08
いつもお世話になっております。 オラ忍者鳥取県(・_・。)(涙)

早速ですが、表題の件に関して分らないことがあります。どなたかお分かりの方が
いらしましたら、どうかご助言賜りたく存じます。宜しくお願いします。m(_ _)mペコリ

質問の内容ですが、

FileOutputStream fos = new FileOutputStream("../sql/" + "a.sql");  ・・・@

@のような感じで生成されたファイルを現在プログラムを実行中の場所から
ひとつ上のフォルダ上にあるsqlというフォルダ内に格納したいのですが、
上記のように記述しても

..¥¥a.sql (指定されたパスが見つかりません。)

とエラーがでて思い通りの動作を行わせることができませんでした。
ちなみに ("../sql/" + "a.sql") → ("..¥¥sql¥¥" + "a.sql")
の結果も同じでした・・・。私の思っているような処理を行わせたい場合
どのような記述をするとよいのでしょうか?

Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2003-12-02 13:26
mkdir ..\sql
とやったらどうなりますか?
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2003-12-02 13:31
確認したわけではないですが、多分文法的には問題ないと思います(試験に合格した忍者鳥取県さんが文法を間違えるなんて、あろうはずがないでしょう...きっと)。

単にディレクトリが存在しないだけのような気がします。

まず、カレントディレクトリをチェックしてください。
コード:
new File(".").getName();


たとえば、カレントディレクトリがc:\java\workである場合、c\java\sqlというディレクトリは存在しますか?

もし存在するなら、保存できるはずです。
保存できない場合、File#getAbsolute()で絶対パスに変換して、実行してみてください。

問題点を絞り込むことができないので、ここまでのことを試した上で、その結果等を投稿してください。
忍者鳥取県
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 61
お住まい・勤務地: リオネジャネイロの地下6000Km
投稿日時: 2003-12-02 13:31
Keisukeさん、かずくんさん早速の返答ありがとうございます。

さきほどのに記述していませんでしたが、sqlフォルダ自体は存在しています。
言葉たらずでごめんなさい。m(_ _)m ペコリンコ

追伸:試験合格おぼえてくれてたんですね・・・w (・_・;)ふぉふぉふぉ


[ メッセージ編集済み 編集者: 忍者鳥取県 編集日時 2003-12-02 13:37 ]
ニシトミ
ベテラン
会議室デビュー日: 2003/04/24
投稿数: 76
お住まい・勤務地: 千葉・東京
投稿日時: 2003-12-02 13:35
忍者さんども

引用:

忍者鳥取県さんの書き込み (2003-12-02 13:08) より:

ちなみに ("../sql/" + "a.sql") → ("..¥¥sql¥¥" + "a.sql")



セパレータは、ハードOSに依存するので
File.separator
とするといいですよ
Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2003-12-02 13:48
おっと失礼しました。

パーミッションの問題かと思いましたが、この場合は
java.io.FileNotFoundException: ..\sql\a.sql (アクセスが拒否されました。)
となるようです。
架空兎
ベテラン
会議室デビュー日: 2003/08/18
投稿数: 78
お住まい・勤務地: さいたま氏
投稿日時: 2003-12-02 14:25
一度、これでカレントディレクトリがどこになっているのか調べた方がいいかも知れません。

コード:

System.out.println(System.getProperty("user.dir"));


忍者鳥取県
ベテラン
会議室デビュー日: 2003/08/28
投稿数: 61
お住まい・勤務地: リオネジャネイロの地下6000Km
投稿日時: 2003-12-02 14:48
引用:

架空兎さんの書き込み (2003-12-02 14:25) より:
一度、これでカレントディレクトリがどこになっているのか調べた方がいいかも知れません。

コード:
System.out.println(System.getProperty("user.dir"));





架空兎さんありがとうございました。私の単純ミスでした・・・・。
架空兎さんが教えてくれたコマンドを実行して、自分のいるディレクトリを
勘違いしていることに気づきました・・・。
こういったコマンドがあったのですね、勉強になりました。

みなさま、ほんとにお騒がせいたしましてごめんなさい。
& ありがとうございました。
1

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