- 締切済み
バイナリーファイル読み書き
現在あるクラスパスの通っているディレクトリーから バイナリーファイルを読み込み、書き込みを行おうとしております。 指定はフルパス形式ではなく、/sample/data/data.txt の様な形式で行います。 読み込みはFileInputStream、書き込みはFileOutputStreamにて 行います。通常のフルパス指定での読み書きを行える事は既に 確認済なのですが、上記の様な形式を読み込もうとするとエラーになります。 そこで、getResourceにより、ファイルを探索させて、得られたURLオブジェクトを 使用して読み書きを行いたいと思っておりますが、 どうしても、URLからFileOutputStreamあるいはFileInputStreamまでつながりません。 例えば、URLからURIに変換出来れば、その後FileクラスをURIから生成して、 FileOuputStream or FileInputStreamを生成する事が出来るのですが。。。 この例以外の方法でも構いません。よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- arukamun
- ベストアンサー率35% (842/2394)
回答No.1
絶対パス(フルパス)であれば問題無いのであれば、相対パスの指定の仕方に問題があると思われます。 カレントディレクトリからの相対パスであれば、 /sample/data/data.txt では駄目ですね。 ./sample/data/data.txt と頭にピリオド(.)をつけて確認して見てください。
お礼
セキュリティの問題?からかそういったものはない様ですね。ありがとうございました。
補足
reader = new BufferedReader(new InputStreamReader(x.getClass().getResourceAsStream(/sample/data/data.txt))); これはBufferedReaderを使用したやつですが、これの出力版みたいなのがあればなぁ。 と思っております。getResourceAsStreamのOutputStreamを返してくれる様なやつ。