apache common-net 学习笔记

相关下载:
commons-net down:http://commons.apache.org/net/download.html

公司提出需要通过ftp上传下载文件,总结一下(备忘)

package cn.xt.net.ftp;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.SocketException;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.junit.Test;

public class Ftpclient {

final static String PATH="d:/zhanghuadong/";
final static String SERVICE_ADDRESS="192.168.0.115";
final static String USER="ftpuser";
final static String PASSWORD="ftpuser";
final static String DOWN_FILE_NAME="XF200070750845720090218";
/**
* Ftp下载
*
*/
@Test
public void ftpQuery(){
FTPClient client=new FTPClient();
try {
client.connect(SERVICE_ADDRESS);
boolean islogon=client.login(USER, PASSWORD);
FTPFile[] files=null;
if(islogon){
int reply=client.getReplyCode();
/**判断返回代码 */
if(!FTPReply.isPositiveCompletion(reply)){
throw new Exception("对不起,"+SERVICE_ADDRESS+" user:"+USER+" password:"+PASSWORD+" 连接出错!");
}
/**更改下载的目录 */
client.changeWorkingDirectory("qyyd_fsend/");
files=client.listFiles();
File file=null;
for (int i = 0; i < files.length; i++) {
System.out.println(files[i].getName());
if(files[i].getName().equals("XF200070750845720090218")){
System.out.println("down...");
file=new File(PATH+files[i].getName());
}
}
if(file!=null){
OutputStream out=new FileOutputStream(file);
client.retrieveFile("XF200070750845720090218", out);
System.out.println("down success...");
out.close();
}
System.out.println("logon 成功!");
}
client.logout();
client.disconnect();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
}

public void ftpUpload(){
FTPClient ftp=new FTPClient();
InputStream stream=null;
try{
//ftp.setDefaultPort(221);
ftp.connect(SERVICE_ADDRESS);
boolean islogon=ftp.login(USER, PASSWORD);
if(islogon){
int recode=ftp.getReplyCode();
if(!FTPReply.isPositiveCompletion(recode)){
throw new Exception("对不起,"+SERVICE_ADDRESS+" user:"+USER+" password:"+PASSWORD+" 连接出错!");
}
stream=new FileInputStream(new File(PATH+DOWN_FILE_NAME));
FTPFile[] files=ftp.listFiles();
int overname=0;
for (int i = 0; i < files.length; i++) {
if(files[i].getName().indexOf(DOWN_FILE_NAME)!=-1){
overname++;
}
}
if(overname>0){
ftp.rename(DOWN_FILE_NAME, DOWN_FILE_NAME+"."+overname);
}
//设置文件类型 文本类型 二进制文件 区别文本会根据系统加换行符 二进制则不会
ftp.setFileType(FTPClient.ASCII_FILE_TYPE);
boolean isstore=ftp.storeFile(DOWN_FILE_NAME,stream);
stream.close();
if(!isstore){
System.out.println("upload fail ...");
}
System.out.println("upload success...");
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
ftp.logout();
ftp.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}

public static void main(String[] args){
Ftpclient client=new Ftpclient();
client.ftpUpload();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
马哥Linux学习笔记是一份关于Linux基础入门及安装系统、文件目录的学习资料。这份学习笔记涵盖了Linux开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别,FHS(文件系统层次标准)的定义以及Linux手册的不同章节。其中,GPL是GNU General Public License的缩写,BSD是一种开源许可证,MIT也是一种开源许可证,Mozilla是Mozilla Public License的缩写,ApacheApache License的缩写,而LGPL是Lesser General Public License的缩写。FHS定义了Linux系统中各个目录应该存放的文件数据,确保不同开发人员在目录配置上的统一。Linux手册被分为多个章节,每个章节包含不同类型的帮助内容,例如用户命令、系统调用、设备文件和特殊文件、配置文件格式等。马哥Linux学习笔记提供了这些重要的知识和理解,帮助读者更好地学习和理解Linux操作系统。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux学习笔记](https://blog.csdn.net/weixin_42593895/article/details/126044983)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [马哥笔记第一周作业(linux基础了解)](https://blog.csdn.net/jyjyhhh/article/details/127380718)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值