通过java操作ftp

System.Net.FtpClient C#的FTP操作类库,支持FTP文件的上传,下载等等 立即下载
在做项目中,我们一般都会有上传附件的需求,所以学会操作文件是java基础。关于文件存放的选择暂时知道的也就几种:
1、保存在磁盘,这种方式算是比较好的,但是部署在各个地方的应用需要共同访问时就很麻烦。
2、保存在数据库,这个有些人会用,但是相对用的人比较少,因为它即使有着让所有的应用都能访问的方便。但是会使数据库的体积快速增长,倒致后期操作数据比较麻烦,比如说迁移等等。
3、最后我还知道的一种方式是,上传到ftp。这种最终也是通过磁盘保存,但是这样方便多个应用访问。个人觉得是一种比较好的保存方式。
以下为 java代码:
package com.talent.main.freewf.util;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
import com.buyli.base.exception.GeneralException; //这个是自定义异常,java代码中需要作一定的修改
import com.buyli.base.util.ArchiveUtil; //这里作为静态参数类 java代码中需要作一定修改
import com.buyli.base.util.LoggerUtil; //这个是日志操作类 java代码中需要作一定修改
/**
* @title:ApacheFtpClient
* @Copyright @ 2012 All right reserved
* @author www.360buyli.com
* @Date 2012-3-13 下午01:57:23
* @version 1.0
* @description ftp文件处理
*
*/
public class ApacheFtpClient {
static Logger logger=Logger.getLogger(ApacheFtpClient.class);
private FtpClient ftpClient;
public ApacheFtpClient() {
}
private void connect() {
try {
ftpClient = new FtpClient();
ftpClient.openServer(ArchiveUtil.SERVER); //这里是ftp服务器的ip 如:192.168.8.99
ftpClient.login(ArchiveUtil.USER, ArchiveUtil.PASSWORD); //这里分别为用户名和密码
} catch (IOException e) {
e.printStackTrace();
}
}
/**
*
* @param filename
* 文件名
* @param filelocal
* 本地路径
* @param ftppath
* ftp路径
* @throws Exception
*/
public void up(String filename, String filelocal, String ftppath)
throws Exception {
this.connect();
try {
if (ftppath.length() != 0) {
ftpClient.cd(ftppath);
} else {
ftpClient.cd("/");
}
ftpClient.binary();
TelnetOutputStream os = ftpClient.put(filename);
File file_in = new File(filelocal);
FileInputStream is = new FileInputStream(file_in);
byte[] bytes = new byte[ArchiveUtil.BUFFER];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
is.close();
os.close();
this.close();
} catch (IOException ex) {
this.close();
ex.printStackTrace();
}
}
/**
* 读取目录下存在的文件
*
* @param args
* @throws IOException
* @throws GeneralException
* @throws Exception
*/
public List<String> readFile(String ftppath) throws IOException, GeneralException {
this.connect();
List<String> readFileList = new ArrayList<String>();
try {
if (ftppath.length() != 0) {
ftpClient.cd(ftppath);
} else {
ftpClient.cd("/");
}
ftpClient.binary();
BufferedReader ftpFileName = new BufferedReader(
new InputStreamReader(ftpClient.nameList(ftppath)));
String strName = "";
while ((strName = ftpFileName.readLine()) != null) {
readFileList.add(strName);
}
} catch (Exception e) {
LoggerUtil.logError(e,logger,"连接FTP失败");
e.printStackTrace();
} finally {
this.close();
}
return readFileList;
}
/**
* 下载单个文件
*
* @param args
* @throws IOException
* @throws IOException
* @throws GeneralException
* @throws SocketException
* @throws Exception
*/
public void download(String filename, String filepath) throws IOException,
GeneralException {
this.connect();
File basefile = new File(ArchiveUtil.TEMPSAVEXML);
if(basefile.exists()){
basefile.mkdir();
}
String localpath = ArchiveUtil.TEMPSAVEXML + File.separator + filename; // 文件的本地存放路径
ftpClient.cd(filepath);
File file = new File(localpath);
OutputStream out = new FileOutputStream(file);
TelnetInputStream fget = ftpClient.get(filename);
DataInputStream puts = new DataInputStream(fget);
byte[] bt = new byte[ArchiveUtil.BUFFER];
int i;
while ((i = puts.read(bt)) != -1) {
out.write(bt, 0, i);
}
puts.close();
fget.close();
out.close();
this.close();
}
/**
* 删除ftp文件,当文件读取下载完成,读取内容,接收成功后删除,如果接收失败,则再次上传后删除
*
* @param args
* @throws Exception
*/
public void delete_file(String url, String ftppath) throws Exception {
this.connect();
if (ftppath.length() != 0) {
ftpClient.cd(ftppath);
} else {
ftpClient.cd("/");
}
ftpClient.binary();
ftpClient.sendServer("DELE " + url + "\r\n");
@SuppressWarnings("unused")
int status = ftpClient.readServerResponse();
this.close();
}
public void close() {
if (ftpClient != null) {
try {
ftpClient.closeServer();
} catch (IOException e) {
LoggerUtil.logError(e,logger,"ftp关闭时出错");
e.printStackTrace();
}
}
}
}
【MIT-BEVFusion代码解读】第四篇:融合特征fuser和解码特征decoder 的大小,实际上源代码也是这么做的。最后将得到两个分支的特征进行。,第一个特征使用卷积降低通道数即可,第二个则需要反卷积来提升。所以backbone只有两个分支,都是5个卷积模块组成。的长和宽都减半至90,然后在经过5个相同的。将通道降至128,后面再接5个相同的。,将通道数128上至256,并且将。特征进行融合,这里使用的。部分由两部分组成,分别是。,这个分支首先经过第一个。,然后再卷积得到 =>提取特征,最后得到特征。得到了两个大小不同的。 阅读详情

相关推荐

Matlab中eig内置函数转为C语言

本文记录一下如何将MATLAB中的eig函数转为C语言,即通过C语言求解矩阵的特征值与特征向量。[V,D]=eig(Rx)中V为矩阵Rx的特征向量,D为矩阵的特征值。其中Rx维度为12*12的复矩阵。 首先在MATLAB端创建入口函数保存为eigvalue.m: 打开MATLAB Coder,添加入口函数: 3.在定义输入类型窗口中,需要添加输入数据来训练...

u011441044的博客 3516

FTPClient 简介

下面是FtpClient类的一些介绍:  sun.net.ftp.FtpClient.,该类库主要提供了用于建立FTP连接的类。利用这些类的方法,编程人员可以远程登录到FTP服务器,列举该服务器上的目录,设置传输协议,以及传送文件。FtpClient类涵盖了几乎所有FTP的功能,FtpClient的实例变量保存了有关建立"代理"的各种信息。下面给出了这些实例变量:   public stati

baima1234的专栏 3241

音视频从入门到精通——指数哥伦布码原理

在计算机中,一般数字的编码都为二进制,但是由于以相等长度来记录不同数字,因此会出现很多的。

mirana的专栏 1382

java ftp ftpclient_FTPClient 用法

/*** connectServer* 连接ftp服务器* @throws java.io.IOException* @param path 文件夹,空代表根目录*@param password 密码* @param user 登陆用户* @param server 服务器地址*/public void connectServer(String server, String user, St...

weixin_42252122的博客 1401

解放双手!利用海康VM全局脚本+通讯管理打造自动化视觉控制系统

本文深入探讨了如何利用海康VisionMaster(VM)的全局脚本和通讯管理功能,打造高效自动化视觉控制系统。通过全局变量实现数据共享与动态调整,结合多协议通讯管理,提升系统响应速度与智能化水平,适用于工业4.0环境下的复杂视觉检测与决策场景。

weixin_28720573的博客 425

Simulink模块库介绍(一)——信号源模块

Simulink模块库介绍(一)——信号源模块库目录Clock模块Digital Clock模块Band-Limited White Noise模块 目录 simulink模块库中提供了丰富的信号源模块组。逐一介绍,算是对之前做个总结吧 Clock模块 通过时钟模块,输出的时间作为判断呢,如下图,前2s之前为高斯白噪声,后2s为正弦曲线,共计10s。 Digital Clock模块 数字时钟模块主要用于离散系统的计时,sample time表示采用时间,如下图:分别是1s和0.5s的采样时间 Band-

5万+

ftpclient上传和下载文件

java上传文件到ftp有两种实现方式,一种是使用sun公司提供的sun.net.ftp包里面的FtpClient,另一种是Apache组织提供的org.apache.commons.net.ftp包里的FTPClient,现在我来分别说下两种实现方式。 sun的FtpClient:我...

chiwanqi9869的博客 325

腾讯滑块验证码防水墙 tdc.js 补环境实录

腾讯滑块验证码破解研究摘要 本文记录了破解腾讯防水墙滑块验证码(tdc.js)的全过程。研究重点包括: 流程分析:通过抓包分析验证码完整链路,识别出关键参数collect和eks需从tdc.js虚拟机获取 环境模拟:采用渐进式补环境方法,针对字节码虚拟机特性构建完整的window对象,包括navigator、screen、canvas等API的精确模拟 核心破解:成功调用TDC.getData()和TDC.getInfo()获取关键参数,解决POW计算和滑块缺口识别问题 优化调整:针对errorCode 5

码王吴彦祖的博客 232

java上传、下载、删除ftp文件

java上传、下载、删除ftp文件

牟云飞的博客 1万+

Android 13.0 USB 麦克风音频采集优化:解决延时、杂音和无声问题

摘要:本文针对Android智能会议设备中USB麦克风存在的三大问题(录音延时、概率性杂音和无声)进行了深入分析和优化。通过预填充静音帧降低90%启动延时,分离采集/播放互斥锁消除杂音,采用持久化配置解决无声问题,并新增状态通知机制提升用户体验。优化后测试显示:录音延时从1200-2000ms降至100-200ms,故障率降至0%,CPU占用降低30%。该方案适用于各类USB音频设备和视频会议系统,为低延时音频采集提供了可靠解决方案。

ip0417的博客 230

[Dify实战] 招聘筛简历机器人:自动筛选、排序、生成面试要点-带绑定资源

摘要:本文介绍了如何利用Dify优化简历筛选流程,解决人工筛选耗时、标准不统一等问题。通过结构化输出"评分+亮点+风险+面试关注点",将主观判断转化为规则化流程。关键步骤包括:设计标准化Prompt、配置权重排序策略、确保公平合规性、与ATS系统对接,以及持续优化评估指标。该方法能显著提升筛选效率(缩短招聘周期)、增强一致性(避免主观偏差),并为面试官提供结构化参考信息,最终实现更高效精准的人才筛选。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 581

FtpClient的使用

摘自:http://hi.baidu.com/yuanhotel/item/000b6334894d11f42784f4da Java的ftp操作 package com.why.ftp;import java.io.DataInputStream;import java.io.File;import java.io.FileInputStream;import java.io.Fil...

weixin_30689307的博客 467

如何设置Xilinx以太网IP核的Pause帧处理

这里要注意,为什么是或,第一个条件是该功能使能取反,也就是说,如果你设置使能不打开的话,这个条件是直接满足的;先来看图中第二句,判断该以太网数据包为Global Pause帧(gpp),首先要满足Step1,然后是由上图中第二句代码(assign global_pause_packet)后面的所有项“与”(&&)起来的,就是说要满足后面所有的项,分别是DA符合,SA符合,Etype符合,Opcode符合,并且使能了该功能(即设置ctl_rx_enable_gpp=1)。如果没通过,则进入Step3。

qq_43416206的博客 618

java操作FTP

类提供了许多其他方法来处理各种FTP操作。此外,实际返回值可能会根据FTP服务器的响应而有所不同。,先确认你是FTP文件服务器还是FTPS。这句代码报错,确认你的文件服务器类型,是。,否则connect就会报这个错误。java链接FTP文件使用的是。指定本地路径的时候要用前缀。

while(life)++; 1020

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JAVA操作FTP

用java语言,对FTP服务器进行操作

hoohyouxi的博客 246

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java中的FTP操作

通过以上示例,我们可以看到,在Java中进行FTP操作并不是一件复杂的事情。掌握这些技能后,无论是处理日常文件传输需求,还是构建复杂的企业级应用,都能更加得心应手。希望这篇文章能对你有所帮助。如果你有任何问题或建议,欢迎在评论区留言。我们下次再见!当我们专注于编程细节时,不要忘记代码背后的逻辑和目的。只有把技术和业务需求结合起来,才能真正发挥代码的力量。

weixin_46372265的博客 571

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JAVA操作FTP(FTP工具类)

JAVA FTP操作 导入commons-net <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version> </dependency> package com.my.ftp.test; import java.io.File; imp

wangyingjief的博客 7429

java ftp 教程_Java 中两种ftp操作方式

最近看到几篇关于java中操作ftp的文章,所以想写一个总结贴,标记一下,方便以后应用。首先,我们可以应用java中的ftp库,java中提供了一个ftpclient的类,提供了很多操作ftp的方法。先上代码,一看便知,很简单,应用时只要传递相应的server,user,password等就行了。import java.io.IOException;import sun.net.*;import ...

weixin_39636245的博客 1364

java 中的 Ftp操作

老婆昨天突然跟我说起用Java做Ftp的操作,懊恼的是,我竟然没有看过,丢人丢人。。。现特意写下文字,督促自己学习:)    对于任何Ftp服务器,都是需要遵循Ftp协议的,所以任何的ftp相关操作都是可以通过ftp协议的相关命令来完成的,对于现在的任何Ftp客户端,实际上都只是在Ftp协议的基础上做了一层外壳,只是外壳做的好坏,功能是否顺手,界面是否美观的问题。对于Java,处理Ftp相关操作可

Bluesky_Leon的专栏 2560

FTP 的Java客户端操作

注:文章皆为个人纪录,可用性请以最终结果为准,若有错还请大佬们指出,谢谢! 温馨提示:(暂不支持在本地的C盘中写入文件) 一、引入依赖 <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> <groupId>commons-net</groupId> <artifactId&g

Mr.J 1801

java 使用ftp_Java对FTP的操作

Java操作FTP的功能避免了FTP文件夹不存在的情况,使用了单例避免了多线程导致超过FTP最大连接数的问题FTP工具类需要commons-netpackage util;import java.io.*;import java.util.LinkedList;import java.util.List;import org.apache.commons.net.ftp.FTPClient;imp...

weixin_39613089的博客 601

java ftp协议操作文件

java ftp协议操作文件 package com.cmxcode.servicesgateway.util; import lombok.extern.slf4j.Slf4j; import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FT

qq_33619502的博客 203

手写一个好用的Java FTP操作工具类

前言 网上百度了很多FTP的java 工具类,发现文章代码都比较久远,且代码臃肿,即使搜到了代码写的还可以的,封装的常用操作方法不全面,于是自己花了半天实现一个好用的工具类。最初想用java自带的FTPClient 的jar 去封装,后来和apache的jar工具包对比后,发现易用性远不如apache,于是决定采用apache的ftp的jar 封装ftp操作类。 之前写过一篇 windows 服务器搭建FTP服务的教程 点击查看 代码展示 pom文件引入依赖关系 commons-net...

洛阳泰山的博客 2487

java操作ftp

JAVA FTPClient FTP简单操作 - 简书

Li_Zhongxin的博客 227

java操作ftp上传下载

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层,TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。可以使用FTP进行下载和上传。

客官不爱喝酒的博客 1215

FTP的Java操作全面实战

 FTP系列: 在Windows系统上搭建FTP服务器全面总结:https://blog.youkuaiyun.com/haoranhaoshi/article/details/86092630 FTP操作:https://blog.youkuaiyun.com/haoranhaoshi/article/details/86922363 FTP的Java操作全面实战:https://blog.youkuaiyun.com/haora...

haoranhaoshi的博客 1003
上一篇: dom4j操作xml时的乱码与格式化
下一篇: 程序员经典语录
sr2012
博客等级 码龄14年 0粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值