Я пытаюсь обновить и сохранить существующий XML-файл, используя «новый XmlNodePrinter (новый PrintWriter (новый FileWriter (filepath))). Print (xmlParse)» И каждый раз, когда я получаю сообщение об ошибке чтения файла «java.io.FileNotFoundException: (В доступе отказано) "в файле.
Мой код:
def filepath = "X:/XXX/XX/abc.xml"
def xml = readFile(filepath)
def xmlParse = new XmlParser().parseText(xml)
xmlParse.project.each { A ->
if (A.@name == XXXXX){
A.Branch.each { B ->
if (B.@id == XXXXX){
Do somthing....
B.@id = YYYY
}
}
new XmlNodePrinter(new PrintWriter(new FileWriter(filepath))).print(xmlParse)
Ошибка:
java.io.FileNotFoundException: X:\XXX\XX\abc.xml (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:101)
at java.io.FileWriter.<init>(FileWriter.java:63)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)