- - PR -
DOMを使って作成したxml文書の削除
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-12-09 15:24
こんにちわ。真哉と申します。
初歩的な質問と思いますが、よろしくお願い致します。 早速で申し訳ありませんがソースです。 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); DOMImplementation domImpl = builder.getDOMImplementation(); Document document = domImpl.createDocument("","index",null); Element root = document.getDocumentElement(); Element record = document.createElement("record"); Element recnm = document.createElement("rec_name"); recnm.appendChild(document.createTextNode("名前")); Element reccom = document.createElement("rec_comm"); reccom.appendChild(document.createTextNode("コメント")); record.appendChild(recnm); record.appendChild(reccom); root.appendChild(record); TransformerFactory transFactory = TransformerFactory.newInstance(); Transformer transformer = transFactory.newTransformer(); DOMSource source = new DOMSource(document); File newXML = new File("index.xml"); FileOutputStream os = new FileOutputStream(newXML); StreamResult result = new StreamResult(os); transformer.transform(source, result); System.out.println(newXML.delete() ? "OK" : "削除に失敗しました"); 実行結果:削除に失敗しました 上記の処理を実行するとxmlファイルが削除できず残ってしまいます。 なぜ削除に失敗してしまうのか、わからず困っています。 この場合何が原因で削除できないのか、御わかりの方いらっしゃいましたら ご教授いただけないでしょうか。 よろしくお願い致します。 | ||||
|
投稿日時: 2004-12-09 15:48
DOM をつかっていることと削除できないことに因果関係はありますか?
もうすこし切り分けてみましょう。 たぶん関係なく、File IO の API の使い方の問題です。 | ||||
|
投稿日時: 2004-12-09 15:54
真哉さんこんにちは。米山@クロノスです。
インギさんがおっしゃるとおりDOMは関係ないですね。 ファイル I/O 操作に関することです。 もう少し具体的には、deleteする前にFileOutputStreamに対する重要な処理が欠けていますね〜? | ||||
|
投稿日時: 2004-12-09 16:09
インギさん、米山@クロノスさん返信ありがとうございます。
当初はDOMを使わずxmlファイルを作成していたので、 DOMのせいだと思い込んでいました。 FileOutputStreamのクローズを行っていませんでしたね? 無事うまくいきました。本当にありがとうございました。 | ||||
|
投稿日時: 2004-12-09 16:32
そうですね。 ファイルを削除するにはストリームを開きっぱなしじゃダメですからね。 解決してよかったです(^^ |
1