DOMparser を使用して XML スキーマ ファイルのバッチを解析しました。私が作成しているアプリケーションに不可欠ないくつかの注釈を追加しました。次に、これらの新しい「前処理済み」ファイルを新しい場所に書き込もうとすると、FileNotFound 例外 (アクセスが拒否されました) が発生します。
ファイルを書き込んでいるコードのスニペットは次のとおりです。
Transformer tFormer = TransformerFactory.newInstance().newTransformer();
// Set output file to xml
tFormer.setOutputProperty(OutputKeys.METHOD, "xml");
// Write the document back to the file
Source source = new DOMSource(document);
File preprFile = new File(newPath(xmlFile));
// The newPath function is a series of String operations that result in a new
relative path
try {
// Create file if it doesn't already exist;
preprFile.mkdirs();
preprFile.createNewFile();
} catch (Exception e) {
e.printStackTrace();
}
Result result = new StreamResult(preprFile);
tFormer.transform(source, result);
そして、私が得ているエラーは次のとおりです。
java.io.FileNotFoundException: absolutePathHere (Access is denied)
上記のスニペットのこの行を指している:
tFormer.transform(source, result);
私はWindowsマシンを使用しています(このエラーの原因となる可能性のある場所を読んでください)、すでにUACをオフにしようとしましたが、成功しませんでした.
createNewFile() メソッドは作成後にファイルを解放しないのではないかと考えていましたが、それに関する詳細情報を見つけることができませんでした。
ここで、StackOverflow が再び助けになることを願っています。