2013-03-12 29 views
0

是否有可能改变当前的源代码,所以我可以使用FTPS ?:的URLConnection与FTPS

InputStream in = new URL(url).openStream(); 
OutputStream out = new  URL("ftp://"+user+":"+password+"@"+server+""+dir+""+filename_real_string).openConnection().get OutputStream(); 
byte[] buffer = new byte[16384]; 
while ((r=in.read(buffer))>=0) { 
    out.write(buffer, 0, r); 
} 
in.close(); 
out.close(); 

是否有可能没有任何额外的库或者如果没有,它库西服最好?

回答

2

您可以使用:org.apache.commons.net.ftp.FTPSClient

用法示例:

public static void main(String[] args) { 
    FTPSClient ftp = new FTPSClient(); 
    String host = "server.com"; 
    int port = 2121; 
    String folderName = "dir"; 
    String username = "user"; 
    String password = "password"; 
    try { 
     ftp.connect(host, port); 
     ftp.login(username, password); 
     InputStream fis = new FileInputStream("../filename_src.txt"); 

     ftp.storeFile("/" + folderName + "/filename_dest.xml", fis); 
     fis.close(); 

     ftp.logout(); 
     ftp.disconnect(); 
    } catch (SocketException ex) { 
     Logger.getLogger(FTPSendMessage.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (IOException ex) { 
     Logger.getLogger(FTPSendMessage.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 
+1

感谢,会使用普通的Java尝试一下,所以疗法EIS没有直接的解决方法Oracle提供的类? – 2013-03-12 15:52:51

+0

但需要添加百分比= n; String n_perct = n +“%”; System.out.print(“\ rTransferring”+ filename_real_string +“”+ n_perct +“”); ... in.read输入流是一个远程URL,远程文件应该直接传输到有关当前状态的ftp打印信息(百分比) – 2013-03-12 16:03:40

+1

不,在Java中没有本地实现ftps客户端。 – 2013-03-12 16:15:05