10代と話して驚いたこと

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

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

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

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

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

A 回答 (3件)

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



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

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

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/F …

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

思い切り間違ってる



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

その1)
cdirectory をStringにする

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

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報