在 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= 的必要性(和内存浪费) ] 对象.
我想在调度程序中自动将文件放入 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= 的必要性(和内存浪费) ] 对象.