こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

java ファイル出力 Cドライブ直下

お世話になっております。

現在eclipseのjavaでファイルを出力するものを作成しております。
出力されたファイルはCドライブの直下へ置きたいと思っております。
そこで

File cdirectory = new File("c:\\");
FileOutputStream out = null;
out = new FileOutputStream(cdirectory + "aaa.xls");

と処理をしています。
ところが実際にプログラムを起動しファイルを出力するとプログラムファイルのところに
「\\aaa.xls」という名前でファイルが作られてしまっています。
何か書き方が間違っているのでしょうか?

お知恵を頂ければと思います。
宜しくお願いします。

投稿日時 - 2013-06-17 12:37:43

QNo.8137673

すぐに回答ほしいです

質問者が選んだベストアンサー

え、間違えているっていう回答があるけど、俺の環境だとちゃんとaaa.xlsが出来てるよ。

out = new FileOutputStream(cdirectory + "aaa.xls");

ここで"c:\\"+"aaa.xls"になってるとおもうよ。
fileのtoString()がpathを返すようになってるから別にわざわざStringで定義しなくてもおっけーでしょ?

投稿日時 - 2013-06-17 13:14:17

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

Wr5

Javaは詳しくないので、他の方の回答待った方がいいのかも知れませんが……。

String cdirectory = new String("c:\\");
FileOutputStream out = null;
out = new FileOutputStream(cdirectory + "aaa.xls");
なんじゃないんでしうょうか?
http://docs.oracle.com/javase/jp/6/api/java/io/FileOutputStream.html#FileOutputStream%28java.lang.String%29

まあ、それはそれとして……
OSによってはC:\の直下にファイルが置けなかったりしますけど、そのヘンはどうなんですかねぇ?
# Program Filesの下に書けているみたいですから、質問者さんのOSでは問題ないのかも知れませんが。
さらに……作成したプログラムをLinuxとかで動かした場合はどうなるんですかね?

投稿日時 - 2013-06-17 13:02:27

ANo.1

思い切り間違ってる

修正方針は2通りあると思うわ

その1)
cdirectory をStringにする

その2)
new FileOutputStreamの引数をFileにする

どっちでもいいと思うけど
かっこいいのはその2の方かな

投稿日時 - 2013-06-17 13:02:26

あなたにオススメの質問