package net.rrm.ehour.backup.service.restore;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import java.io.*;
/**
* @author thies (thies@te-con.nl)
* Date: 1/20/11 5:36 PM
*/
public final class BackupFileUtil {
private BackupFileUtil() {
}
/**
* Write bytes[] to temp file and return the absolute filename
*/
public static String writeToTempFile(byte[] bytes) throws IOException {
final String xmlData = new String(bytes);
File file = File.createTempFile("import", "xml");
file.deleteOnExit();
try (FileWriter writer = new FileWriter(file)) {
writer.write(xmlData);
}
return file.getAbsolutePath();
}
/**
* Create XML reader from data string
*
* @param xmlData
* @return
* @throws XMLStreamException
*/
static XMLEventReader createXmlReader(String xmlData)
throws XMLStreamException {
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
return inputFactory.createXMLEventReader(new StringReader(xmlData));
}
/**
* Create XML reader from file
*
* @param filename
* @return
* @throws IOException
* @throws XMLStreamException
*/
static XMLEventReader createXmlReaderFromFile(String filename) throws IOException, XMLStreamException {
String data = getXmlDataFromFile(filename);
return createXmlReader(data);
}
private static String getXmlDataFromFile(String filename) throws IOException {
try (BufferedReader bufferedReader = new BufferedReader(new FileReader(new File(filename)))) {
String line;
StringBuilder xmlData = new StringBuilder();
while ((line = bufferedReader.readLine()) != null) {
xmlData.append(line);
}
return xmlData.toString();
}
}
}