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

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

这个是可以向服务器端发送文字的程序,就是在客户端发送一句hello在服务器也可以接受到hello,这个程序可以修改一下就可以了。具体修改方法是增加一个定时器,然后把字符流改成字节流,现在有点忙,你先研究啊,近两天帮你写写看。

服务器端:

import javanet;

import javaio;

public class DateServer {

public static void main(String[] args) {

ServerSocket server=null;

try{

server=new ServerSocket(6666);

Systemoutprintln(

"Server start on port 6666");

while(true){

Socket socket=serveraccept();

new SocketHandler(socket)start();

/

PrintWriter out=new PrintWriter(

new OutputStreamWriter(

socketgetOutputStream()

)

);

outprintln(new javautilDate()toLocaleString());

outclose();

/

}

}catch(Exception e){

eprintStackTrace();

}finally{

if(server!=null) {

try{

serverclose();

}catch(Exception ex){}

}

}

}

}

class SocketHandler extends Thread {

private Socket socket;

public SocketHandler(Socket socket) {

thissocket=socket;

}

public void run() {

try{

PrintWriter out=new PrintWriter(

new OutputStreamWriter(

socketgetOutputStream()

)

);

outprintln(

new javautilDate()

toLocaleString());

outclose();

}catch(Exception e){

eprintStackTrace();

}

}

}

客户端:

package combriup;

import javaio;

import javanet;

public class FtpClient {

public static void main(String[] args) {

if(argslength==0) {

Systemoutprintln("Usage:java FtpClient file_path");

Systemexit(0);

}

File file=new File(args[0]);

if(!fileexists()||!filecanRead()) {

Systemoutprintln(args[0]+" doesn't exist or can not read");

Systemexit(0);

}

Socket socket=null;

try{

socket=new Socket(args[1],IntegerparseInt(args[2]));

BufferedInputStream in=new BufferedInputStream(

new FileInputStream(file)

);

BufferedOutputStream out=new BufferedOutputStream(

socketgetOutputStream()

);

byte[] buffer=new byte[10248];

int i=-1;

while((i=inread(buffer))!=-1) {

outwrite(buffer,0,i);

}

Systemoutprintln(socketgetInetAddress()getHostAddress()+" send file over");

inclose();

outclose();

}catch(Exception e){

eprintStackTrace();

}finally{

if(socket!=null) {

try{

socketclose();

}catch(Exception ex){}

}

}

}

}

jdk17下其构造函数FtpClient()被定义为private类型,所以无法new了。 在jdk17,已经换成了 FtpClientcreate(ip)方法

同时,其他的一些方法也基本都改掉了,

如 ftpClientopenServer(server);

ftpClientlogin(user, password);

就可以换成:ftpClientlogin(user, null, password);

ftpClientbinary(); ---> ftpClientsetBinaryType();

ftpClientput(remotefilename);--->ftpClientputFileStream(remotefilename, true);

等。

不知道你用的哪个jarcommons-netjar包中可以用 ftpClientlistFiles(pathName);返回值是个FTPFile[],jdk里也有访问ftp的类,用过感觉不太好用,好像中文名称的文件会出现乱码,不太记得怎么用了如果还取不到ftpClientchangeWorkingDirectory(path);可以试试这个,在查下面的目录

//创建一个ftpclient对象

FTPClient fc=new FTPClient();

//创建连接

fcconnect("ip地址", 端口号);

//登录

fclogin("用户名","密码");

//校验登陆

reply = fcgetReplyCode();

if (!FTPReplyisPositiveCompletion(reply)) {

fcdisconnect();

}           

//切换到指定地址

fcchangeWorkingDirectory("地址");

//获取该目录下的所有文件

FTPFile[] fs=fclistFiles();

for(FTPFile ff:fs){

  Systemoutprintln(ffgetName());

}

//注销退出

fclogout();            

切换工作路径啊,

ftpClientchangeWorkingDirectory("/admin/pic"); //工作路径切换到/admin/pic ,ftpClientsetBufferSize(1024); //设置1M缓冲,

ftpClientsetControlEncoding("GBK"); //设置编码为GBK,

ftpClientsetFileType(FTPClientBINARY_FILE_TYPE); //文件类型为二进制文件,

ftpClientstoreFile("3gif", fis)//在前面设置好路径,缓冲,编码,文件类型后,开始上传3gif。

1、Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

2、Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。

以上就是关于求每日定时在服务器的FTP上取数据文件的源码(JAVA)全部的内容,包括:求每日定时在服务器的FTP上取数据文件的源码(JAVA)、FtpClient这个类的方法怎么用、ftp获取不到文件目录,但是登录是成功的。 java等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9513908.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存