2011-03-05 106 views
0

代码:文件没有从ftp下载

import java.io.FileOutputStream; import org.apache.commons.net.ftp.FTPClient;

public class FtpDownloader { 

    // Server Credentials 
    String host = "ip"; 
    String username = "user"; 
    String password = "pass"; 

    public static void main(String args[]) { 
     new FtpDownloader().downloadFile(); 
    } 

    public void downloadFile() { 
     try { 
      FTPClient client_ftp = new FTPClient(); 
      FileOutputStream fos = null; 

      client_ftp.connect(host); 
      client_ftp.login(username, password); 

      System.out.println("Connected : " + client_ftp.isConnected()); 

      fos = new FileOutputStream("d://update_mac.txt"); 

      Boolean file_got = client_ftp.retrieveFile("/update/update_mac.txt", fos); 

      System.out.println("Downloaded : " + file_got); 

      fos.close(); 

      client_ftp.disconnect(); 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

正如你可以看到我试图下载从FTP服务器上的文件,但是当我运行建立连接的代码,但该文件没有得到下载它显示我的system.What 0KB您认为原因可能是?

在此先感谢

+0

我也试过这个http://www.javabeat.net/tips/36-file-upload-and-download-using-java.html方法,但它给了我畸形的url异常,但是当我把在我的浏览器中的相同网址它给我的文件。 – Jinith 2011-03-05 14:08:29

+0

'FTPClient'不是标准Java API的一部分,但是这个可以从Apache Commons Net中识别出来。在将来的问题中,请明确提及第三方库。 – BalusC 2011-03-05 14:29:54

+0

org.apache.commons.net.ftp.FTPClient;这是我正在使用的api – Jinith 2011-03-07 11:39:03

回答

0

一定要使用这些参数组合之一的connect()方法调用:

void connect(InetAddress host) 
void connect(InetAddress host, int port) 
void connect(InetAddress host, int port, InetAddress localAddr, int localPort) 
void connect(String hostname) 
void connect(String hostname, int port) 
void connect(String hostname, int port, InetAddress localAddr, int localPort) 

您可能试图connect("127.0.0.1")这是不是这些组合中的一个。