Я написал простой объект для Маршалла. Я сортирую его до StringWriter
, а не файла. Он работает нормально, но я не уверен, как я его разоблачить.Unmarshall от InputStream
Это код, который я написал до сих пор.
public static void main(String[] args) throws JAXBException, FileNotFoundException {
JAXBContext context = JAXBContext.newInstance(Employee.class);
Marshaller marshaller = context.createMarshaller();
Employee employee = new Employee();
employee.setId(1002);
employee.setOccupation("Software Developer");
employee.setSalary("56000");
StringWriter writer = new StringWriter();
marshaller.marshal(employee, writer);
System.out.println("Object Marshalled Successfully");
Conversion.unMarshallingObject();
}
public static void unMarshallingObject() throws JAXBException {
StringWriter writer = new StringWriter();
InputStream stream = new ByteArrayInputStream(writer.toString().getBytes());
JAXBContext context = JAXBContext.newInstance(Employee.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Employee employee = (Employee) unmarshaller.unmarshal(stream);
System.out.println("Object unmarshalled successfully");
System.out.println("**********************************");
System.out.println(employee.getId() + " " + employee.getOccupation() + " " + employee.getSalary());
}
Существует множество примеров, но все они передают файл. Я не хочу никаких файлов. Можно ли это сделать так?
Благодаря
С одной стороны, вы знаете, что при создании * нового * StringWriter оно пустое, верно? – immibis