1、Maven依赖

     <!-- FTP使用包 -->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>

2、使用方式

package com.task;

import org.apache.commons.net.ftp.*;

import java.io.*;
import java.nio.charset.StandardCharsets; public class RecordTask {
public static void main(String[] args) throws Exception {
// Linux服务器IP或主机名
String server = "your_server";
// FTP端口号(默认为21)
int port = Integer.valueOf("your_port");
// FTP登录用户名
String userName = "your_username";
// FTP登录密码
String password = "your_password"; FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(server, port);
ftpClient.login(userName, password);
// 设置被动模式传输数据
ftpClient.enterLocalPassiveMode();
// 切换到指定目录
ftpClient.changeWorkingDirectory("/opt/test");
// 列出当前目录下的所有文件
FTPFile[] files = ftpClient.listFiles();
for (FTPFile file : files) {
if (!file.isDirectory()) {
// 将文件从Linux服务器下载到本地
File localFile = new File("local_directory/" + file.getName());
OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(localFile));
InputStream inputStream = ftpClient.retrieveFileStream(file.getName());
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.close();
inputStream.close();
}
}
System.out.println("文件下载完成!");
} finally {
if(ftpClient!=null && ftpClient.isConnected()){
try {
//退出登录
ftpClient.logout();
//断开连接
ftpClient.disconnect();
System.out.println("退出登录,断开连接");
} catch (IOException e) {
e.printStackTrace();
}
}
}
} /**
* 删除文件
*/
public void deleteFile(FTPClient ftpClient,String fileName){
if(ftpClient == null){
return;
}
//String fileName = "/opt/test/测试.txt";
String validFileName = new String(fileName.getBytes(), StandardCharsets.ISO_8859_1);
boolean flag ;
try {
flag = ftpClient.deleteFile(validFileName);
} catch (IOException e) {
e.printStackTrace();
}finally {
if(ftpClient!=null && ftpClient.isConnected()){
try {
//退出登录
ftpClient.logout();
//断开连接
ftpClient.disconnect();
System.out.println("退出登录,断开连接");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

java使用ftp连接linux处理文件的更多相关文章

  1. Linux学习之八-配置FTP连接Linux服务器

    配置ftp连接Linux服务器 通过配置ftp服务器,可以实现局域网内共享文件,甚至不同用户具有不同权限,需要的工具有Windows平台ftp客户端FileZilla(免费开源) 下载地址:https ...

  2. java使用ssh连接Linux并执行命令

     方式1:通过设置账号密码和链接地址 maven pom.xml配置: <dependency>         <groupId>com.jcraft</groupId ...

  3. 1.关于UltraEdit中的FTP和Tenent配置,UE远程连接Linux进行文件操作

     1  安装UltraEdit 2  配置FTP相关的配置 文件àFTP/Tenet(T)à watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3 ...

  4. java之Jsch实现Linux的文件上传与下载

    一.JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功 ...

  5. 使用Java 编写FTP中的长传文件和下载文件

    实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式,),分别为:1.通过JDK自带的API实现:2.通过Apache提供的API是实现. 第一种方法:通过JDK自带的API实现 ...

  6. SecureFX连接Linux后文件夹中文乱码问题解决(转)

    在使用SecureFX 连接Linux 时,发现文件夹显示乱码,一直尝试各种配置,现将方法整理一下!供大家参考! 首先在选项中设置字符编码为UTF-8 然后在全局选项中找到Securefx的配置文件 ...

  7. java使用SSH连接Linux系统

    SSH连接linux系统使我们在开发项目中常用到的,现在留下来,做个记录 package com.log; import java.io.BufferedReader; import java.io. ...

  8. Java 自定义FTP连接池

    转自:https://blog.csdn.net/eakom/article/details/79038590 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  9. 第3节 sqoop:7、通过java代码远程连接linux执行shell命令

    数据库的数据同步软件sqoop 数据同步 关系型数据库到大数据平台 任务:sqoop 是批量导入数据太慢,如何做到实时的数据同步 实时的数据同步工具: canal 阿里开源的一个数据库数据实时同步的软 ...

  10. java程序远程连接Linux服务器

    JSCH或 Ganymed Ganymed: Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包. 可以利用它直接在Java程序中连接SSH服务器.官网地址为 htt ...

随机推荐

  1. 【framework】InputChannel创建流程

    1 前言 IMS启动流程 中介绍了 IMS 在 Java 层和 Native 层的初始化流程,以及创建 NativeInputManager.InputManager.InputReader.Inpu ...

  2. 【framework】ATMS启动流程

    1 前言 ​ ATMS 即 ActivityTaskManagerService,用于管理 Activity 及其容器(任务.堆栈.显示等).ATMS 在 Android 10 中才出现,由原来的 A ...

  3. IntersectionObserver对象

    IntersectionObserver对象 IntersectionObserver对象,从属于Intersection Observer API,提供了一种异步观察目标元素与其祖先元素或顶级文档视 ...

  4. ElementUI导出表格数据为Excel文件

    功能介绍 将列表的数据导出成excel文件是管理系统中非常常见的功能.最近正好用到了ElementUI+Vue的组合做了个导出效果,拿出来分享一下,希望可以帮到大家:) 实现效果 实现步骤 1.定义导 ...

  5. 硬件开发笔记(七): 硬件开发基本流程,制作一个USB转RS232的模块(六):创建0603封装并关联原理图元器件

    前言   有了原理图,可以设计硬件PCB,在设计PCB之间还有一个协同优先动作,就是映射封装,原理图库的元器件我们是自己设计的.为了更好的表述封装设计过程,本文描述了贴片电阻电容0603芯片封装,创建 ...

  6. 都说了别用BeanUtils.copyProperties,这不翻车了吧

    分享是最有效的学习方式. 博客:https://blog.ktdaddy.com/ 故事 新年新气象,小猫也是踏上了新年新征程,自从小猫按照老猫给的建议[系统梳理大法]完完整整地梳理完毕系统之后,小猫 ...

  7. 【Azure 应用服务】部署WAR包到App Service访问出现404错误的解决方式

    问题描述 在Linux的App Service上,通过FTP把war文件和HTML静态文件上传到wwwroot目录下,静态文件访问成功,但是java应用中的请求都返回404错误 问题解决 因为FTP上 ...

  8. 【Azure Fabric Service】怎样关闭 Azure Service Fabric?

    问题描述 怎样关闭Azure Service Fabric服务呢?在Azure门户上没有找到 Stop 按钮. 问题回答 Azure Service Fabric 默认是无法停止的,可以删除. 虽然可 ...

  9. Windows NFS 真弱 → 中文乱码导致文件找不到

    开心一刻 正睡着觉,然后来了个电话 对方说:你好,方便面是吗 我愣了一下,以为是恶作剧 回了句:我不是,我是火腿肠! 就挂了电话 又躺了好一会,忽然琢磨过来...... 不对呀,她好像说的是:你好,方 ...

  10. 以Servlet来解释 抽象实现类

    在 Java Servlet API 中: Servlet 接口定义了一个 Servlet 的基本行为.这个接口是抽象的,因为它包含抽象方法,比如 service(), init(), 和 destr ...