如何使用JAXB

时间:2017-11-27 19:51:27

标签: java file jaxb

我有一个对象,我想使用JAXB编组并写入文件异步

我尝试编写内容(大约300mb),然后使用AsynchronousFileChannel编写文件。 不幸的是它在编组期间启动java.lang.OutOfMemoryError:Java堆空间

  protected String getFormattedFileContent(T fileContent) throws Exception {
     StringWriter stringWriter = new StringWriter();
     final JAXBContext jaxbContext = JAXBContext.newInstance(fileContent.getClass());
     final Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
     jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
     jaxbMarshaller.marshal(fileContent, stringWriter);
     return stringWriter.toString();
  }

编辑:编组需要很长时间才能将大对象编组为XML,因此我将编组和编写文件启动到单独的线程中

0 个答案:

没有答案