java使用ftp连接linux处理文件
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处理文件的更多相关文章
- Linux学习之八-配置FTP连接Linux服务器
配置ftp连接Linux服务器 通过配置ftp服务器,可以实现局域网内共享文件,甚至不同用户具有不同权限,需要的工具有Windows平台ftp客户端FileZilla(免费开源) 下载地址:https ...
- java使用ssh连接Linux并执行命令
方式1:通过设置账号密码和链接地址 maven pom.xml配置: <dependency> <groupId>com.jcraft</groupId ...
- 1.关于UltraEdit中的FTP和Tenent配置,UE远程连接Linux进行文件操作
1 安装UltraEdit 2 配置FTP相关的配置 文件àFTP/Tenet(T)à watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3 ...
- java之Jsch实现Linux的文件上传与下载
一.JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功 ...
- 使用Java 编写FTP中的长传文件和下载文件
实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式,),分别为:1.通过JDK自带的API实现:2.通过Apache提供的API是实现. 第一种方法:通过JDK自带的API实现 ...
- SecureFX连接Linux后文件夹中文乱码问题解决(转)
在使用SecureFX 连接Linux 时,发现文件夹显示乱码,一直尝试各种配置,现将方法整理一下!供大家参考! 首先在选项中设置字符编码为UTF-8 然后在全局选项中找到Securefx的配置文件 ...
- java使用SSH连接Linux系统
SSH连接linux系统使我们在开发项目中常用到的,现在留下来,做个记录 package com.log; import java.io.BufferedReader; import java.io. ...
- Java 自定义FTP连接池
转自:https://blog.csdn.net/eakom/article/details/79038590 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...
- 第3节 sqoop:7、通过java代码远程连接linux执行shell命令
数据库的数据同步软件sqoop 数据同步 关系型数据库到大数据平台 任务:sqoop 是批量导入数据太慢,如何做到实时的数据同步 实时的数据同步工具: canal 阿里开源的一个数据库数据实时同步的软 ...
- java程序远程连接Linux服务器
JSCH或 Ganymed Ganymed: Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包. 可以利用它直接在Java程序中连接SSH服务器.官网地址为 htt ...
随机推荐
- 【Unity3D】选中物体消融特效
1 消融特效原理 消融特效 中基于 Shader Graph 实现了消融特效,本文将基于 Shader 实现消融特效. 当前实现消融特效的方法主要有 Alpha 测试消融.clip(或 dis ...
- comm命令
comm命令 comm命令用于比较两个已排过序的文件,该命令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成3列显示:第1列仅是在第1个文件中出现过的列,第 ...
- win32编辑控件字体
每次到用的时候就各种查资料,我这人记性又不好,遂记录下来: 普通的编辑控件: 创建:HWND hText = CreateWindowW(L"EDIT", L"enter ...
- 多线程系列(八) -ReentrantLock基本用法介绍
一.简介 在之前的线程系列文章中,我们介绍到了使用synchronized关键字可以实现线程同步安全的效果,以及采用wait().notify()和notifyAll()方法,可以实现多个线程之间的通 ...
- django中一些快捷函数
1.get_object_or_404() 接收两个参数,参数1为模型类,参数2为查询参数 查询到对象则返回对象,查询不到则返回http404,但是不会返回模型的DoesNotExist异常 示例: ...
- java基础集合类之ArrayList---01
集合类之ArrayList ArrayList<E>: 1.可调整大小的数组实现 2.<E>:是一种特殊的数据类型,泛型 3.在出现E的地方我们使用引用数据类型替换即可:Arr ...
- VMware虚拟机Ubuntu系统如何占满整个屏幕
VMware虚拟机Ubuntu系统分辨率调节 桌面右击--Disoplay Settings 选择一个跟本机系统一样或者相近的.(本机小米笔记本win11,具体看自己的情况) 结束.
- 【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
问题描述 如何查看PHP应用部署到App Service后,Azure上面使用的应用服务器是什么呢?因为App Service支持两种操作系统,Windows 和 Linux.在Windows中,使用 ...
- 一个利用go反向代理解决api转发的例子(go反向代理)
实现的效果: 如果访问的url路径是类似 /163/ 或 /163/debian 的形式,则转发到163开源镜像服务器 直接上代码: package main import ( "fmt& ...
- 使用beyond compare或kompare作为git的对比、合并工具
两种方法 方法1: 直接使用命令 # 执行下面命令,参看支持对比合并工具名称,比如bc就是指beyond compare(收费软件,推荐使用开源的kompare) $ git difftool --t ...