• ベストアンサー

ファイルの解放

今、読込んだファイルについて処理を行ったのち、削除する処理を作ろうと思うのですが、ファイルを削除できません。 C言語でのfcloseのような処理は、Documentにあるのでしょうか? 読込みは以下の通りです document doc = db.parse(new File(data.xml)) すいませんが、よろしくお願いします。

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

  • ベストアンサー
  • m_hagizo
  • ベストアンサー率65% (31/47)
回答No.2

#1で回答した者です。 >fclose的なメソッドっていうのは存在するのでしょうか? とのことですが、これはFileInputStreamクラスのclose()メソッドが、それに近いものと言えるでしょう。 注:これ以降は、あまり自信がない情報です・・・。 DocumentBuilderのparseメソッドは、引数にInputStreamを指定するものもあったと思います。これを使って、FileからFileInputStreamを作って、それをDocumentBuilderに渡して・・・とかなんとかすれば、ちゃんとファイルをクローズして・・・とかを意識できるかもしれません。要するに、Fileオブジェクトを渡してしまえば、その辺は意識しなくてもDocumentBuilderがやってくれますよ、という仕組みになっているのではないでしょうか・・。(間違っていたら、どなたかご指摘お願いします。)

wwwwtaka
質問者

お礼

返事が遅れすいませんでしたが、ありがとうございました。 確かに、動作を見ると、自動的にDocumentBuilderがやっているような気がします。 わからないことが多く、四苦八苦してますが、頑張って勉強したいと思います。 ありがとうございました。

その他の回答 (2)

  • aton
  • ベストアンサー率47% (160/334)
回答No.3

No.2のm_hagizoさんのお考えでだいたいあってると思います。 ソースにあたったわけではないので,私も想像に過ぎませんが,DocumentBuilder#parse(File f) の実装は,たぶん FileInputStream fis = new FileInputStream(f); this.parse(fis); fis.close(); のように,内部でDocumentBuilder#parse(FileInputStream is)を利用して作られているのだと思います。 興味があれば,御自分でソースに当たって確認されるとよいと思います。

  • m_hagizo
  • ベストアンサー率65% (31/47)
回答No.1

ご質問のところにあるdbって、DocumentBuilderクラスのオブジェクトですよね? で、fcloseとは違うんですが、Fileのdeleteメソッドを使って、こんな感じにしてしまうのはいかがでしょうか・・・。 File file = new File("data.xml"); Document doc = db.parse(file);    : <ドキュメントの処理>    : file.delete(); // このファイルを削除するというメソッド。 他にもいろいろやり方があると思いますが、これが一番簡単だと思われます。

wwwwtaka
質問者

お礼

どうもありがとうございます!! 削除はこんな間単にできるんですね。 fclose的なメソッドっていうのは存在するのでしょうか? それとも、読込みが終わった時点で、アクセスは完了したと 考えることはできるんでしょうか?

関連するQ&A