Java 如何从URL创建commons net FTPClient

Java 如何从URL创建commons net FTPClient,java,ftp,Java,Ftp,是否有一种方法可以从URL(如URL)构造实例ftp://user:pass@foo.bar:2121/path,类似于JDK中的?没有可用于它的直接构造函数, 你可以用点什么 FTPClient f = new FTPClient(); f.connect(server); f.login(username, password); 如果您的问题是解析,那么使用下面的代码进行解析,然后创建一个包装类 导入java.net。;导入java.io 公共类解析URL{ 公共静态voi

是否有一种方法可以从URL(如
URL)构造实例ftp://user:pass@foo.bar:2121/path
,类似于JDK中的?

没有可用于它的直接构造函数, 你可以用点什么

FTPClient f = new FTPClient();
    f.connect(server);
    f.login(username, password);

如果您的问题是解析,那么使用下面的代码进行解析,然后创建一个包装类

导入java.net。;导入java.io

公共类解析URL{
公共静态void main(字符串[]args)引发异常{
URL aURL=新URL(“http://java.sun.com:80/docs/books/tutorial“
+“/index.html?name=networking#DOWNLOADING”);
System.out.println(“protocol=“+aURL.getProtocol());
System.out.println(“authority=“+
aURL.getAuthority());
System.out.println(“host=“+aURL.getHost());
System.out.println(“port=“+aURL.getPort());
System.out.println(“path=“+aURL.getPath());
System.out.println(“query=“+aURL.getQuery());
System.out.println(“filename=“+aURL.getFile());
System.out.println(“ref=“+aURL.getRef());
}}

以下是程序显示的输出:
协议=http
authority=java.sun.com:80
host=java.sun.com
端口=80
path=/docs/books/tutorial/index.html
query=name=networking
filename=/docs/books/tutorial/index.html?name=网络

ref=下载

是,但这涉及手动解析用户名、密码、端口、主机和路径。我希望避免那样做。是的,我能理解。:),但是你可以很容易地解析它,这里有很多问题需要处理:如果省略了端口,我们就必须使用defaultPort;getUserInfo()可能不返回任何内容,只返回一个用户或一个用户和密码。@hertzspring这些都是您必须处理的问题。您可以从中看到,例如,默认端口是从
FtpClient.defaultPort()
抓取的。实现你想要的很简单。