问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用java怎么获取ftp上的文件

发布网友 发布时间:2022-05-05 13:43

我来回答

1个回答

热心网友 时间:2022-06-27 14:05

public class FtpClientUtil {
FtpClient ftpClient;
private String server;
private int port;
private String userName;
private String userPassword;

public FtpClientUtil(String server,int port,String userName,String userPassword)
{
this.server=server;
this.port=port;
this.userName=userName;
this.userPassword=userPassword;
}
/**
* 链接到服务器
* @return
*/
public boolean open()
{
if(ftpClient!=null&&ftpClient.serverIsOpen())
return true;
try
{
ftpClient= new FtpClient();
ftpClient.openServer(server,port);
ftpClient.login(userName, userPassword);
ftpClient.binary();
return true;
}
catch(Exception e)
{
e.printStackTrace();
ftpClient=null;
return false;
}
}

public boolean cd(String dir){
boolean f = false;
try {
ftpClient.cd(dir);
} catch (IOException e) {
Logs.error(e.toString());
return f;
}
return true;
}

/**
* 上传文件到FTP服务器
* @param localPathAndFileName 本地文件目录和文件名
* @param ftpFileName 上传后的文件名
* @param ftpDirectory FTP目录如:/path1/pathb2/,如果目录不存在回自动创建目录
* @throws Exception
*/
public boolean upload(String localDirectoryAndFileName,String ftpFileName,String ftpDirectory)throws Exception {
if(!open())
return false;
FileInputStream is=null;
TelnetOutputStream os=null;
try
{
char ch = ' ';
if (ftpDirectory.length() > 0)
ch = ftpDirectory.charAt(ftpDirectory.length() - 1);
for (; ch == '/' || ch == '\\'; ch = ftpDirectory.charAt(ftpDirectory.length() - 1))
ftpDirectory = ftpDirectory.substring(0, ftpDirectory.length() - 1);

int slashIndex = ftpDirectory.indexOf(47);
int backslashIndex = ftpDirectory.indexOf(92);
int index = slashIndex;
String dirall = ftpDirectory;
if (backslashIndex != -1 && (index == -1 || index > backslashIndex))
index = backslashIndex;
String directory = "";
while (index != -1) {
if (index > 0) {
String dir = dirall.substring(0, index);
directory = directory + "/" + dir;
ftpClient.sendServer("XMKD " + directory + "\r\n");
ftpClient.readServerResponse();
}
dirall = dirall.substring(index + 1);
slashIndex = dirall.indexOf(47);
backslashIndex = dirall.indexOf(92);
index = slashIndex;
if (backslashIndex != -1 && (index == -1 || index > backslashIndex))
index = backslashIndex;
}
ftpClient.sendServer("XMKD " + ftpDirectory + "\r\n");
ftpClient.readServerResponse();

os = ftpClient.put(ftpDirectory + "/"
+ ftpFileName);
File file_in = new File(localDirectoryAndFileName);
is = new FileInputStream(file_in);
byte bytes[] = new byte[1024];
int i;
while ((i = is.read(bytes)) != -1)
os.write(bytes, 0, i);
//清理垃圾

return true;
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
finally
{
if (is != null)
is.close();
if (os != null)
os.close();
}
}
/**
* 从FTP服务器上下载文件并返回下载文件长度
* @param ftpDirectoryAndFileName
* @param localDirectoryAndFileName
* @return
* @throws Exception
*/
public long download(String ftpDirectoryAndFileName,String localDirectoryAndFileName)throws Exception
{
long result = 0;
if(!open())
return result;
TelnetInputStream is = null;
FileOutputStream os = null;
try
{
is = ftpClient.get(ftpDirectoryAndFileName);
java.io.File outfile = new java.io.File(localDirectoryAndFileName);
os = new FileOutputStream(outfile);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1)
{
os.write(bytes, 0, c);
result = result + c;
}
}
catch (Exception e)
{
throw e;
}
finally
{
if (is != null)
is.close();
if (os != null)
os.close();

}
return result;
}
/**
* 返回FTP目录下的文件列表
* @param ftpDirectory
* @return
*/
public List<String> getFileNameList(String ftpDirectory)
{
List<String> list = new ArrayList<String>();
if(!open())
return list;
try
{
DataInputStream dis = new DataInputStream(ftpClient.nameList(ftpDirectory));
String filename = "";
while((filename=dis.readLine())!=null)
{
list.add(filename);
}
} catch (Exception e)
{
e.printStackTrace();
}
return list;
}
/**
* 删除FTP上的文件
* @param ftpDirAndFileName
*/
public boolean deleteFile(String ftpDirAndFileName)
{
if(!open())
return false;
ftpClient.sendServer("DELE "+ftpDirAndFileName+"\r\n");
return true;
}
/**
* 删除FTP目录
* @param ftpDirectory
*/
public boolean deleteDirectory(String ftpDirectory)
{
if(!open())
return false;
ftpClient.sendServer("XRMD "+ftpDirectory+"\r\n");
return true;
}
/**
* 关闭链接
*/
public void close()
{
try
{
if(ftpClient!=null&&ftpClient.serverIsOpen())
ftpClient.closeServer();
}catch(Exception e)
{

}
}
}望采纳,谢谢。
如何 用Java 实现 获取FTP服务器上的所有文件名,已知FTP的密码,用户名...

public void ftpJdomFile(String dir) throws FileNotFoundException, IOException{ //创立根节点 //下面这个方法是列出指定目录下的所有文件和文件夹 List dirslist=Arrays.asList(new File(dir).listFiles());for (Iterator i = dirslist.iterator(); i.hasNext();) { // System.out.prin...

用java怎么获取ftp上的文件

public class FtpClientUtil { FtpClient ftpClient;private String server;private int port;private String userName;private String userPassword;public FtpClientUtil(String server,int port,String userName,String userPassword){ this.server=server;this.port=port;this.userName=userName;this.userPassw...

用JAVA编写一个程序实现输出我的电脑上建立的FTP服务器根目录下的所有...

File files[]=file.listFiles();for(int i=0;i&lt;files.length;i++){ System.out.println(files[i].getName() );} 如果要获取所有的文件和文件夹可以使用String[] list()方法。返回的是String类型的数组,其中所有文件和文件夹的相对路径表示。补充--- 如果那样的话那么就需要在你的ftp服务器...

java 怎么从ftp获取文件路径

import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.io.RandomAccessFile;import org.apache.commons.net.PrintCommandListener;import org.apache.commons.net.ftp.FTP;import org.apache.c...

java怎么在ftp上取到文件夹中文件再录入txt文本

http://www.codejava.net/java-se/networking/ftp/java-ftp-file-download-tutorial-and-example 这个文档非常好。有什么看不懂的再问吧。主要是使用 org.apache.commons.net.ftp.FTPClient 和 org.apache.commons.net.ftp.FTP 类。核心代码:ftpClient.connect(server, port); ftpClient.login(u...

请问一下,java中有没直接判断ftp上文件夹下是否存在某文件的方法?通过...

第一个种方法 :org.apache.commons.net.ftp.* 看这个目录下是否有你要的方法 第二种方法:package com.soft4j.log4j;import java.io.IOException;import sun.net.ftp.FtpClient;public class FtpTest { static String middle_ftpServer = "10.103.2.250";static String middle_user = "ora9i...

java连接ftp在线读取文件,不下载文件直接读 怎么读 求代码

因此那些直接在线读取文件内容的要求应该是先下载到本地,然后读取本地文件的内容。当然,你也可以仿照FTP的协议发送对应的指示到服务器,直接把服务器返回的信息放到缓存里(以前做过,忘记了),这样可以避免生成文件,不过这个就要详细了解ftp协议和socket编程才行。

我安装了JRE1.6版本,如何在记事本中写一个简单的java程序,下载FTP服务器...

//比如要下载ftp://ftp.xx.com/index.html则:import sun.net.ftp.FtpClient;import java.io.*;import sun.net.*;/ Title: Description: Copyright: Copyright (c) 2004 Company: author petehero version 1.0 / public class ftpDown { public ftpDown(){ } public static void main(S...

求每日定时在服务器的FTP上取数据文件的源码(JAVA)

import java.io.*;import java.net.*;public class FtpClient { public static void main(String[] args) { if(args.length==0) { System.out.println("Usage:java FtpClient file_path");System.exit(0);} File file=new File(args[0]);if(!file.exists()||!file.canRead()) { Syste...

...文件考到另一个ftp的目录的某个文件夹下用java代码实现

你先登录ftp2调用ftp1,ftpClient1.changeWorkingDirectory(path);InputStream inputStream = ftpClient1.retrieveFileStream(file.getName());用这个代码应该可以从ftp1中获得一个inputStream ,在ftp2中可以做上传操作 目录的话ftp2还要做递归存放到list中,ftp2遍历上传. 其实我也没做这个,希望思路有点...

java读取ftp上的文件 javaftp中文文件取不到 如何获取ftp上的文件 java ftp上传文件 java从ftp上下载文件到本地 java下载文件到指定文件夹 java下载ftp文件 java如何监听ftp新增文件 Java从ftp上读取数据
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2024年小麦价格多少钱一斤 酸甜口味的凉拌菜如何制作? 小麦价格什么时候涨 明年小麦还会继续上涨吗 怎么做家常韭菜烧豆腐? 家常烧豆腐块怎么做? 单核CPU512内存 加内存会让电脑运行快吗 我的电脑配置 CPU AMD速龙 双核 3600+ 内存 512MB 显卡64M 什么情况... 我的cpu是AMD Sempron 3000+的 内存是512M 显示卡是 Radeon X300/X550/... 我的电脑是双核CPU 2G内存 512独显 怎样才能加快电脑运行速度 夸父逐日中的夸父是什么精神? 夸父逐日的主要内容是什么,表现了夸父的什么精神 女娲补天夸父逐日愚公移山什么精神 夸父逐日夸父的精神是什么 “夸父追日”这个故事讲了一种什么精神? 日语 计算机中的 前台 和后台 怎么说 ⑴夸父身上表现了哪些精神品质 夸父逐日反映了什么精神?你从夸父身上学到了什么 夸父逐日夸父有一种什么样的精神 GOOGLE怎么翻译英文网站的后台网页 端午节的来历400字。 某个问题导致该程序的服务停止,(错误代码0x80070422) 华为自带翻译 学习通后台能看见吗? 后台运行的翻译是:什么意思 按键精灵后台翻译怎么翻译 按键精灵 翻译成后台 后台管理的英文怎么说 什么翻译手机软件可以后台运行 液晶屏亮度典型值是什么意思?比如700cd/m2,单位中的cd是什么? 液晶显示器的亮度多少CD最合适! “精卫填海和“夸父逐日”两个故事都表现了什么精神 夸父逐日表现了哪些精神品质 夸父逐日什么样的思想和精神 怎么判断FTP文件是否存在 java 从一个URL中提取特定子字符串保存 从JAVA写文件到FTP有几种方法?(2) 在Java中实现用户界面功能的包 ftp登录服务器后如何判断服务器上是存在某一个文件 客户端不能上传ftp文件 C#如何取得ftp上面的所有文件夹里面的所有文件名,求源码。。。。 金鳞开by美味罗宋汤所免费小说txt版本在线看 为什么一到夏天,脸上就出那么多油呢? 360卫士新版本怎么设置来电秀 美味罗宋汤怎么做 夏天的时候皮肤很爱出油,你知道油性皮肤该怎么护理吗? 美味的罗宋汤有哪些制作方法? 夏天皮肤一直不停的出油是怎么回事?有什么方法能杜绝? 炎炎夏日很多人的皮肤都很爱出油,有效的控油方法有哪些? 夏天皮肤爱出油怎么调理 mate30数据线连接电脑再选择照片传输后,仍然传不了所有视频和照片?