У меня есть XML-файл с некоторым содержанием. Я хочу изменить этот файл по запросу REST. При создании нового FileOutputStream весь контент стирается, и позже с моим кодом я могу добавить нужные данные в файл XML.
Но после создания нового FileOutputStream, ЕСЛИ ИСКЛЮЧЕНО БРОШЕНО, весь контент стирается.
Как сохранить исходный контент из файла XML (Abc.xml), как есть, если выброшено исключение?
FileOutputStream fileOutputStream = null;
try {
validateXMLSchema("Abc.xsd", "Abc.xml");
JAXBContext jc = JAXBContext.newInstance(Structure.class);
Marshaller marshaller = jc.createMarshaller();
fileOutputStream = new FileOutputStream(
new File(System.getProperty("rootPath") + "/WEB-INF/classes"
+ "/" + "Abc.xml"));
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
Structure structure = new Structure();
structure.setName("Types");
ObjectFactory objectFactory = new ObjectFactory();
} catch (JAXBException e) {
throw IlmODataExceptionBuilder.buildODataApplicationException(
FILE_FORMAT_IS_INCORRECT_CREATE_FILE_AGAIN,
HttpStatusCode.BAD_REQUEST, "Abc.xml");
} catch (FileNotFoundException e) {
throw IlmODataExceptionBuilder.buildODataApplicationException(
FILE_NOT_FOUND, HttpStatusCode.BAD_REQUEST,
"Abc.xml");
} finally {
if (fileOutputStream != null) {
fileOutputStream.close();
}
}
Здесь метод validateXMLSchema () просто проверяет схему XML.
Любая помощь приветствуется.