导航:首页 > 编程语言 > javaftpftpclient

javaftpftpclient

发布时间:2025-09-12 14:00:43

A. java FTPClient 连接FTP,上传文件,不能以中文保存

在连接之前设置ftpClient.setControlEncoding("GBK");连接之后再设置是没有作用的。

B. JAVA怎么实现删除远程FTP服务器上的某一文件

一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法、下载文件的通用方法以及删除文件、在ftp服务器上传文件夹、检测文件夹是否存在等,里面的有些代码对编写JAVA文件上传或许有参考价值,

(1):Java FTP主文件代码:

package ftpDemo;

import java.io.DataOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import sun.net.TelnetInputStream;

import sun.net.TelnetOutputStream;

import sun.net.ftp.FtpClient;

public class ftpUtil {

// 上传文件至FTP通用方法

public static void upLoadFileFtp(KmConfig kmConfig,InputStream is, String fileName){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String password = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClient.binary();

ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。

TelnetOutputStream telnetOut = ftpClient.put(fileName);// fileName为上传的文件名

DataOutputStream dataOut = new DataOutputStream(telnetOut);

byte buffer[] = new byte[ * ];

int count = ;

while ((count = is.read(buffer)) != -) {

dataOut.write(buffer, , count);

}

telnetOut.close();

dataOut.close();

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("上传文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

}

// 删除文件至FTP通用方法

public static void deleteFileFtp(KmConfig kmConfig,String fileName){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClient.binary();

ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。

try {

ftpClient.sendServer("dele " + fileName + " ");

} catch (Exception e) {

System.out.println("删除文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("删除文件失败!");

}

}

// 下载ftp文件

public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){

try {

String ftpHost = kmConfig.getFtpHost();

int port = kmConfig.getFtpPort();

String userName = kmConfig.getFtpUser();

String passWord = kmConfig.getFtpPassword();

String path = kmConfig.getFtpPath();

FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。

ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码

ftpClient.binary();

ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。

try {

TelnetInputStream in = ftpClient.get(fileName);

byte[] bytes = new byte[];

int cnt=;

while ((cnt=in.read(bytes,,bytes.length)) != -) {

outputStream.write(bytes, , cnt);

}

outputStream.close();

in.close();

} catch (Exception e) {

ftpClient.closeServer();

e.printStackTrace();

}

ftpClient.closeServer();

} catch (Exception e) {

System.out.println("下载文件失败!请检查系统FTP设置,并确认FTP服务启动");

}

}

//在ftp服务器上传件文件夹

public boolean createDir(String path,FtpClient ftpClient) throws Exception{

//进入到home文件夹下

ftpClient.cd("/home");

//创建远程文件夹

//远程命令包括

//USER PORT RETR ALLO DELE SITE XMKD CDUP FEAT<br>

// PASS PASV STOR REST CWD STAT RMD XCUP OPTS<br>

// ACCT TYPE APPE RNFR XCWD HELP XRMD STOU AUTH<br>

// REIN STRU SMNT RNTO LIST NOOP PWD SIZE PBSZ<br>

// QUIT MODE SYST ABOR NLST MKD XPWD MDTM PROT<br>

// 在服务器上执行命令,如果用sendServer来执行远程命令(不能执行本地FTP命令)的话,所有FTP命令都要加上/r/n<br>

// ftpclient.sendServer("XMKD /test/bb/r/n"); //执行服务器上的FTP命令<br>

// ftpclient.readServerResponse一定要在sendServer后调用<br>

// nameList("/test")获取指目录下的文件列表<br>

// XMKD建立目录,当目录存在的情况下再次创建目录时报错<br>

// XRMD删除目录<br>

// DELE删除文件<br>

//通过远程命令 穿件一个files文件夹

ftpClient.sendServer("MKD "+ path + " ");

//这个方法必须在 这两个方法中间调用 否则 命令不管用

ftpClient.binary();

ftpClient.readServerResponse();

return false;

}

/**

* 检查文件夹是否存在

* @param dir

* @param ftpClient

* @return

*/

public boolean isDirExist(String dir, FtpClient ftpClient) {

try {

ftpClient.cd(dir);

} catch (Exception e) {

return false;

}

return true;

}

}

(2):KmConfig.java代码如下:定义FTP服务器参数,包括登录的用户名密码之类的。

package ftpDemo;

public class KmConfig {

//主机ip

private String FtpHost = "";

//端口号

private int FtpPort;

//ftp用户名

private String FtpUser = "";

//ftp密码

private String FtpPassword = "";

//ftp中的目录

private String FtpPath = "";

public String getFtpHost() {

return FtpHost;

}

public void setFtpHost(String ftpHost) {

FtpHost = ftpHost;

}

public int getFtpPort() {

return FtpPort;

}

public void setFtpPort(int ftpPort) {

FtpPort = ftpPort;

}

public String getFtpUser() {

return FtpUser;

}

public void setFtpUser(String ftpUser) {

FtpUser = ftpUser;

}

public String getFtpPassword() {

return FtpPassword;

}

public void setFtpPassword(String ftpPassword) {

FtpPassword = ftpPassword;

}

public String getFtpPath() {

return FtpPath;

}

public void setFtpPath(String ftpPath) {

FtpPath = ftpPath;

}

}

(3):下面是测试代码:

C. java FTPClient如何删除远程服务器端的文件夹及其子文件夹及其内容!

假如文件夹里面有文件的话,ftpclient根本删除不了文件夹,不像其他api可以自动递归删除,所以得先回删除文件夹里面答的文件,然后在删除文件夹,
删除之前记得改变下工作目录 fileName是dirName里面的文件
ftpClient.changeWorkingDirectory(remoteDir+dirName)

删除文件命令:ftpClient.deleteFile(fileName);
删除完文件后更改目录ftpClient.changeWorkingDirectory(remoteDir)
删除文件夹命令:ftpClient.removeDirectory(dirName);

D. 看了一段java代码是从FTP上下载文件,ftpClient.setBufferSize()这个是什么用处,要怎么使用它

设置每次读取文件流时缓存数组的大小。上传或者下载都是先将文件流拿到,然专后将文件流一属点一点的读到缓存,然后程序在从缓存将所需的内容读取出来放进要导入的文件中。
一般情况下基本都是1024或者是1024的倍数。对于小文件上传下载的话没有必要管,直接1024就没有问题。

阅读全文

与javaftpftpclient相关的资料

热点内容
怎么获取疫情数据 浏览:232
dnf90版本合粉 浏览:618
es压缩文件教学 浏览:384
网络摄像头怎么改ip 浏览:662
es文件浏览器桌面小组件 浏览:245
节奏大师在哪个文件夹 浏览:975
win10创建文件夹没有权限 浏览:131
5g时代如何提高网络运维 浏览:37
word不能打开docx文件格式 浏览:873
fanuc棋盘孔怎么编程 浏览:810
文件中提示性内容应该如何处理 浏览:699
java继承层次 浏览:78
javaftpftpclient 浏览:596
java序列化反序列化 浏览:92
qq农场最高等级 浏览:516
app汽修好评怎么评价 浏览:591
电脑应用宝文件夹 浏览:502
qq怎样关注公众号 浏览:198
word2007奇偶页眉一样 浏览:573
车载app管家有哪些 浏览:279

友情链接