我要在客户端下载服务器端上的一个文件到客户端,怎么做啊?请高手提供源码和注释,谢谢啊!

解决方案 »

  1.   

    package wei;
    import java.io.*;
    import sun.net.ftp.*;
    import sun.net.*;
    public class Ftp{
      public FtpClient ftpclient=new FtpClient();
      
    public void connect(String host,String name,String password){  
    try{

    ftpclient.openServer(host);
    ftpclient.login(name,password);          }catch(Exception e){
              }
          
    }

        public void download(String fileserver,String fileclient){

    try{
                        
               ftpclient.binary();
               TelnetInputStream readserver=ftpclient.get(fileserver);
               File file_out=new File(fileclient);
               FileOutputStream writeclient=new FileOutputStream(file_out);
               byte[] bytes=new byte[1024];
               int c;
               while ((c=readserver.read(bytes))!=-1) {
               writeclient.write(bytes,0,c);
               }
              readserver.close();
              writeclient.close();
               } catch (IOException ex) {;}
               
    }

    public void upload(String fileserver,String fileclient){
      try{
          
          ftpclient.binary();                   
          TelnetOutputStream writeserver=ftpclient.put(fileserver);
          File file_out=new File(fileclient);
          FileInputStream readclient=new FileInputStream(file_out);
          byte[] bytes=new byte[1024];
          int c;
          while ((c=readclient.read(bytes))!=-1) {
          writeserver.write(bytes,0,c);
          }
          writeserver.close();
          readclient.close();
          } catch (IOException ex) {;}
          
    }

    public void indir(String path){
    try{

         ftpclient.cd(path);
    }catch(Exception e){
    }
    }
    public void back(){
    try{
    ftpclient.cdUp();
    }catch(Exception eq){
    }
    }
    public void changename(String oldname,String newname){
        try{
        
    ftpclient.rename(oldname,newname);
    }catch(Exception eee){
    }
    }

    public void closeconnect(){
    try{
    ftpclient.closeServer();
    }catch(Exception eeee){
    }
    }

    /* public static void main(String args[]){
    Ftp f=new Ftp();
     f.connect("192.168.1.5","wei","123");
               f.indir("v");
               f.changename("w","q");
               f.download("q/d.txt","qq.txt");
               try{
               
                TelnetInputStream ps=f.ftpclient.list();
                int c;
                        while ((c=ps.read())!=-1) {
                        char b=(char)c;
                        String s=Character.toString(b);
                        System.out.print(s);}
                        ps.close();
                        }catch(Exception ee){
                        }

    }*/
    }
    这个可以下载   ftp的
      

  2.   

    使用什么协议传输?如果是http,ftp这些是可以使用jdk中的URL直接下载的,如
    URL url = new URL("ftp://" + "username" + ":" + "password" + "@"
    + "192.168.0.2" + "/" + "1.txt" + ";type=i");
    FtpURLConnection connection = (FtpURLConnection) url.openConnection();
    System.out.println(connection.getInputStream());记得关闭掉连接