<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>3.0.0</version>
</dependency>
@XmlRootElement
public class Person {
private String name;
private int age;
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class JAXBUtil {
public static void marshal(Object object, OutputStream outputStream) throws JAXBException {
JAXBContext context = JAXBContext.newInstance(object.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(object, outputStream);
}
}
public class JAXBUtil {
// ...
public static Object unmarshal(InputStream inputStream, Class<?> clazz) throws JAXBException {
JAXBContext context = JAXBContext.newInstance(clazz);
Unmarshaller unmarshaller = context.createUnmarshaller();
return unmarshaller.unmarshal(inputStream);
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.setAge(25);
try {
JAXBUtil.marshal(person, new FileOutputStream("person.xml"));
Person parsedPerson = (Person) JAXBUtil.unmarshal(new FileInputStream("person.xml"), Person.class);
System.out.println(parsedPerson.getName());
System.out.println(parsedPerson.getAge());
e.printStackTrace();
}
}
}