`
jiadong
  • 浏览: 30717 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个简单的FTP客户端 实现上传下载

 
阅读更多
packagepub.ftp;

importjava.io.BufferedReader;
importjava.io.DataOutputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.util.ArrayList;

importsun.net.TelnetInputStream;
importsun.net.TelnetOutputStream;
importsun.net.ftp.FtpClient;

/***//**
*FTPClient端调用模块
*作者:
*版本:1.0
*时间:2007.07.30
*/


publicclassFTPClient...{
/***//**
*类的初始化,建立ftp的连接,用户登录,指定ftp的传输流
*
@paramhost
*
@paramport
*
@paramuser
*
@parampsw
*/

//建立一条与指定主机、指定端口上的FTP服务器的连接
privateFtpClientaftp=newFtpClient();;
privateDataOutputStreamoutputs;
privateTelnetOutputStreamouts;
privateTelnetInputStreaminps;


publicvoidFTPClass(Stringhost,intport,Stringuser,Stringpsw)...{

try...{


//注册到FTP服务器
aftp.openServer(host);
System.out.println(
"登陆....");
aftp.login(user,psw);

System.out.println(
"登陆FTP服务器成功!");
aftp.binary();

}
catch(IOExceptione)...{

System.out.println(
"连接FTP服务器失败!");
e.printStackTrace();
}



}

/***//**
*通过ftp上传文件到服务器上
*
@paramlocalFile本地所要上传的文件
*
@paramremoteFile传到服务器上的文件名称
*/

publicbooleanupFile(StringlocalFile,StringremoteFile)...{
booleanresult=true;
if(aftp!=null)...{
System.out.println(
"正在上传文件"+localFile+",请等待....");
try...{
Filefile
=newFile(localFile);
outs
=aftp.put(remoteFile);
FileInputStreamin
=newFileInputStream(file);
byte[]bytes=newbyte[1024];
intc;
while((c=in.read(bytes))!=-1)...{
outs.write(bytes,
0,c);
}

outs.close();
in.close();
System.out.println(
"上传文件"+localFile+"成功!");
System.out.println(
"上传文件所在目录:"+remoteFile+"");
}
catch(Exceptione)...{
e.printStackTrace();
System.out.println(
"上传文件"+localFile+"失败!");
result
=false;
}


}
else...{
result
=false;
}

returnresult;
}

/***//**
*下载FTP服务器上的文件
*
@paramlocalFile本地文件名
*
@paramremoteFile远程服务器文件名
*/

publicbooleandownFile(StringremoteFile,StringlocalFile)...{
booleanresult=true;
if(aftp!=null)...{
System.out.println(
"正在下载文件"+remoteFile+",请等待....");
try...{
Filefile
=newFile(remoteFile);
inps
=aftp.get(remoteFile);
aftp.cd(
"D;/jiadong");
FileInputStreamin
=newFileInputStream(file);
//RandomAccessFilegetFile=newRandomAccessFile(file,"rw");
//getFile.seek(0);
FileOutputStreamos=newFileOutputStream(file);

byte[]bytes=newbyte[1024];
intc;
while((c=in.read(bytes))!=-1)...{
//.write(bytes,0,c);
os.write(bytes,0,c);

}

inps.close();
in.close();
os.close();
System.out.println(
"下载文件"+remoteFile+"成功!");
System.out.println(
"上传文件所在目录:"+localFile+"");
}
catch(Exceptione)...{
e.printStackTrace();
System.out.println(
"下载文件"+remoteFile+"失败!");
result
=false;
}

}

returnfalse;
}

/***//**
*断开ftp连接
*
@throwsIOException
*
*/

publicvoiddisconnect()throwsIOException...{
aftp.closeServer();
System.out.println(
"FTP服务器连接断开!");
}

//返回当前目录的所有文件及文件夹

publicArrayListgetFileList()throwsIOException...{
BufferedReaderdr
=newBufferedReader(newInputStreamReader(aftp.list()));
ArrayListal
=newArrayList();
Strings
="";
while((s=dr.readLine())!=null)...{
al.add(s);
}

returnal;
}


publicstaticvoidmain(String[]args)throwsIOException...{
FTPClientftpClient
=newFTPClient();
ftpClient.FTPClass(
"192.168.8.154",21,"jiadong","jiadong");
//ftpClient.upFile("F:/music/想念.mp3","/jia/hehe.mp3");

//ftpClient.upFile("d:/jiadong","D:/workspace/msgfield.xml");
ftpClient.downFile("hehe.xml","/jia/ruru.xml");
ftpClient.disconnect();


}

}

分享到:
评论

相关推荐

    FTP客户端,实现上传下载功能

    总之,FTP客户端实现上传下载功能需要理解FTP协议,正确处理连接、认证、命令交互、数据传输等多个环节,并考虑用户体验和安全性。通过FTP客户端,用户可以便捷地管理和共享文件,实现远程协作。

    MFC 实现FTP客户端的上传下载(断点续传)

    本项目“MFC实现FTP客户端的上传下载(断点续传)”是基于MFC技术实现的,能够实现在FTP服务器上进行文件的上传和下载,并且具备断点续传功能,这对于大文件传输来说尤其重要,因为如果在传输过程中中断,可以从上次...

    QT5.0实现FTP客户端

    2. **QNAM与FTP**:虽然QNetworkAccessManager没有直接提供FTP操作的接口,但可以通过构造一个QNAM的子类并重写其内部的槽函数,来监听FTP相关的信号,从而实现FTP客户端功能。 3. **QNetworkRequest**:创建...

    windows下c++语言实现的FTP客户端(boost方式)

    FTP客户端实现上传下载功能: 该代码文件是在vs2010下编译并运行,使用者安装boost库并配置,即可直接使用,main函数写了一个上传的小demo,使用者可参考使用上传、下载、压缩等功能的使用。 1.本程序支持文件夹嵌套...

    ftp客户端实现上传下载功能

    ftp客户端实现上传下载功能 上传 下载 进入子目录 使用FtpClient 图形化界面 swing

    基于lwip的ftp客户端代码

    在这个基于 lwip 的 FTP 客户端代码实例中,我们主要关注如何在 ucOS 操作系统环境下,利用 lwip(Lightweight IP)库来实现 FTP 客户端的功能,以便从远程服务器下载更新程序到嵌入式设备的闪存中。 lwip 是一个...

    ftp客户端,QT4.8.6实现

    为了深入理解这个FTP客户端的实现,你需要阅读和分析源代码,了解每个类和函数的作用,以及它们如何协同工作。此外,理解QT的信号和槽机制也很关键,因为这是QT中事件驱动编程的基础。最后,熟悉FTP协议的细节将有助...

    C#.NET构建FTP客户端,上传下载

    本项目涉及的是利用C#.NET构建一个FTP(File Transfer Protocol)客户端,该客户端能够实现文件的上传和下载功能。FTP是互联网上用于在不同计算机之间交换文件的标准协议,而FTP客户端则是与FTP服务器交互的软件工具...

    web上实现类似ftp客户端上传和下载

    在Web开发中,实现类似FTP客户端的上传和下载功能是一项常见的需求,这使得用户可以通过浏览器直接操作远程服务器上的文件,而无需安装额外的FTP软件。本文将深入探讨如何在Web应用中实现这样的功能,以及涉及的相关...

    QT5 FTP 客户端 实现多文件下载 上传

    QT5 FTP 客户端 实现多文件下载 上传

    MFC实现的一个FTP客户端

    **FTP客户端实现** 在MFC中实现FTP客户端,通常会涉及到以下几个关键步骤: 1. **连接服务器**:使用Winsock API(Windows套接字)建立与FTP服务器的TCP连接,通过SOCKET句柄进行通信。MFC提供了CInternetSession...

    课程设计基于GUI的FTP客户端的实现JAVA(txt为微云链接)

    1.实现一个图形用户界面的FTP客户端。 2.功能: 2.1 配置使用IIS的FTP服务器; 2.2 客户端发出各种操作命令;至少实现conn(连接)、list(列示文件)、retr(下载)、store(上载)的功能。 2.3 接收服务器的...

    VC++实现ftp客户端

    在本文中,我们将深入探讨如何使用VC++来...通过以上步骤,你可以构建一个基本的FTP客户端,能够实现文件的列举、上传和下载功能。当然,实际应用中可能还需要考虑更多细节,如安全性、多线程、断点续传等高级特性。

    一个简单FTP客户端程序

    创建一个简单的FTP客户端程序,你需要理解FTP的基本工作原理和使用的关键概念。 FTP协议基于TCP/IP协议栈,通过建立两个独立的连接来传输数据:控制连接和数据连接。控制连接用于发送命令和接收响应,如登录、改变...

    一个FTP客户端源码

    FTP客户端是网络应用程序的一种,...总之,"FTP.cpp"是一个实现FTP客户端功能的源码文件,涵盖了从连接服务器、身份验证到文件上传和下载等一系列关键操作。深入理解FTP协议和相关技术对于分析和使用这个源码至关重要。

    linux C实现的FTP客户端(包括上传、下载和List)

    linux C实现的FTP客户端(包括上传、下载和List),上传、下载功能非常完整,有各种异常处理。

    MFC WinInet类实现FTP客户端功能

    在开发一个基于对话框的FTP客户端程序时,我们首先需要实现一些基本功能,如登录FTP服务器、显示服务器目录下的文件和目录、选择文件下载以及上传文件。以下将详细介绍这些功能的实现过程。 1. **创建FTP会话** ...

    QT 实现FTP客户端

    使用QT5.4以上的QNetworkAccessManager类实现的FTP客户端,可以实现上传和下载的功能

    一个极其简单的ftp客户端程序

    VB中的FTP客户端实现可能涉及到以下关键类和方法: - `FtpWebRequest`:创建FTP请求的对象,可以设置各种FTP操作,如GET(下载)和PUT(上传)。 - `FtpWebResponse`:处理FTP服务器的响应,包含有关请求状态的信息...

    基于java的ftp客户端设计与实现

    2. Java FTP客户端实现: 在Java中,`java.net.Socket`类可以用来建立与FTP服务器的连接,而`java.io`包中的输入/输出流则负责数据的传输。此外,`org.apache.commons.net.ftp`库(如`FTPClient`和`FTP pymysql`)...

Global site tag (gtag.js) - Google Analytics