Я пытаюсь записать файл библиотеки XML, который можно снова прочитать в моей программе.
Код файла записи выглядит следующим образом:
XMLBuilder builder = new XMLBuilder();
Document doc = builder.build(bookList);
DOMImplementation impl = doc.getImplementation();
DOMImplementationLS implLS = (DOMImplementationLS) impl.getFeature("LS", "3.0");
LSSerializer ser = implLS.createLSSerializer();
String out = ser.writeToString(doc);
//System.out.println(out);
try{
FileWriter fstream = new FileWriter(location);
BufferedWriter outwrite = new BufferedWriter(fstream);
outwrite.write(out);
outwrite.close();
}catch (Exception e){
}
Приведенный выше код создает документ XML.
Однако в заголовке XML это атрибут, который файл кодирует в UTF-16.
когда я читаю в файле, я получаю сообщение об ошибке:
"содержание не разрешено в прологе"
эта ошибка не возникает, когда атрибут кодирования вручную изменяется на UTF-8.
Я пытаюсь заставить приведенный выше код написать XML-документ, закодированный в UTF-8, или успешно проанализировать файл UTF-16.
код для разбора в
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder loader = factory.newDocumentBuilder();
Document document = loader.parse(filename);
последняя строка возвращает ошибку.