sun.net.ftp classes which come with the jdk anyway.
Thanks to a javaworld article that can be found here.
It's unsafe to use, and not really documented, but does the job for the most basic ftp tasks - and its part of current Sun JDK distributions. Might obviously vanish in the future. But its still there in 1.5.
Basically you need:
import sun.net.ftp.*;
and then you can magically
String ftpserver ="ftp.foo.bar";
String ftpuser = ...;
String ftppasswd = ...;
FtpClientclient = new FtpClient();
client.openServer(ftpserver);
client.login(ftpuser, ftppasswd);
// client.binary();
// client.cd("/wherever");
OutputStream out = client.put(destfilename);
actually it is a sun.net.TelnetOutputstream, but thats a hidden implementation anyway. So at this point you have an OutputStream and do whatever you want to do with it.
out.write(...);
// etc
to close it, just do a
out.close(); // for the file
client.closeServer(); // for the connection
Some people report problems with it, but it works fine for me.
The beauty of it is, that you work with a regular OutputStream (which you can of coure pass to an
OutputStreamWriter
to get a Writer
), so all the code you have that works on any of those output classes just runs with it... in my case the rome library from java.net to create RSS/Atom feeds.
2 comments:
The Jakarta Commons FTP client is really quite nice.
great pointer, don't know why I haven't found that earlier; thanks
Post a Comment