2016-08-02 2 views
1

Я написал простой объект для Маршалла. Я сортирую его до 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()); 

} 

Существует множество примеров, но все они передают файл. Я не хочу никаких файлов. Можно ли это сделать так?

Благодаря

+0

С одной стороны, вы знаете, что при создании * нового * StringWriter оно пустое, верно? – immibis

ответ

3

По the documentation вы можете распаковать из Reader просто отлично - что включает в себя от StringReader.

Employee employee = (Employee) unmarshaller.unmarshal(new StringReader(yourString)); 
+0

Где я буду его читать? Что такое ваша строка в моем случае? – Jaykumar

+0

@Jaykumar Это будет строка, которую вы хотите прочитать. Если у вас нет строки, как вы собираетесь ее читать? – immibis

+0

Это то, что мне нужно понять. Я могу создать файл, предположим employee.xml и прочитать его. Но теперь я могу настроить его без создания файла, и я хочу его развязать. В этом весь смысл. – Jaykumar

Смежные вопросы