在 Java 中将字符串上传到 FTP 服务器上的文件

Upload string to a file on FTP server in Java

我想在调度程序中自动将文件放入 FTP 地址。 我有一个 JSON 对象,所以我可以从中创建一个 XML。 我可以用下面的代码创建一个 xmlString

我想将 xmlString 中的 XML 放到地址 FTP 的文件 abc.xml 中。我该怎么做?

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();
}

如果我对你的问题理解正确,你想将字符串存储到 FTP 服务器上的文件中。

  • 将您的字符串转换为 InputStream:
    How do I convert a String to an InputStream in Java?
  • 然后上传:
byte[] bytes = xmlString.getBytes(StandardCharsets.UTF_8);
InputStream inputStream = new ByteArrayInputStream(bytes);
ftpClient.storeFile(remotePath, inputStream);

话虽如此,大多数 XML 库都能够直接写入 OutputStream,从而避免中间 [=13= 的必要性(和内存浪费) ] 对象.