Я хочу поместить файл на адрес ftp автоматически в планировщике. У меня есть объект json, поэтому я могу создать из него xml. Также я могу создать xmlString с кодом ниже. Итак, я хочу создать xml-файл abc.xml с этой xmlString, а затем поместить его на ftp-адрес. Как я могу сделать.



       private static String objToXml(Object object) throws JAXBException {
        JAXBContext context = JAXBContext.newInstance(object.getClass());
        Marshaller marshallerObj = context.createMarshaller();
        marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        StringWriter sw = new StringWriter();
        marshallerObj.marshal(object, sw);
        return sw.toString();
    }

    String xmlString = "";
    try {
        xmlString = objToXml(anObject);
        } catch (JAXBException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
0
beko 26 Янв 2022 в 13:54
1
Итак, части JSON не имеют ничего общего с вашей проблемой, верно? И на самом деле XML тоже. В основном вы хотите "сохранить строку в файле на FTP-сервере". Не так ли? Если я правильно понимаю, то у вас есть более простой вопрос, чем то, что вы сделали.
 – 
Martin Prikryl
26 Янв 2022 в 14:08

1 ответ

Лучший ответ

Если я правильно понимаю ваш вопрос, вы хотите сохранить строку в файл на FTP-сервере.

byte[] bytes = xmlString.getBytes(StandardCharsets.UTF_8);
InputStream inputStream = new ByteArrayInputStream(bytes);
ftpClient.storeFile(remotePath, inputStream);

С учетом сказанного большинство библиотек XML могут выполнять запись непосредственно в OutputStream, избавляя от необходимости (и потери памяти) промежуточного объекта String.

0
Martin Prikryl 26 Янв 2022 в 16:12
1
Большое спасибо, Мартин. Я думал по другому. Это очень просто :)
 – 
beko
26 Янв 2022 в 16:11