文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JDK1.7以上javaFTP上传删除文件的实现方法

2023-05-30 19:54

关注

实例如下:

packagecom.itv.launcher.util; importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.net.InetSocketAddress;importjava.util.Properties;importjava.util.StringTokenizer; importsun.net.TelnetOutputStream;importsun.net.ftp.FtpClient;importsun.net.ftp.FtpProtocolException; publicclassFTPUtil {   privatestaticFtpClient ftpClient = null;  privatestaticfinal String url;  privatestaticfinal int port;  privatestaticfinal String user;  privatestaticfinal String password;  privatestaticfinal String remoteFilePath;   static{    Properties FTPPro = ReadFTPProperties.getMsgFromPro();    url = FTPPro.getProperty("FTP_URL");    port = Integer.parseInt(FTPPro.getProperty("FTP_PORT"));    user = FTPPro.getProperty("FTP_USER");    password = FTPPro.getProperty("FTP_PASSWORD");    remoteFilePath = FTPPro.getProperty("FTP_REMOTE_FILEPATH");   }     privatestaticvoid connectFTP() throwsFtpProtocolException {    try{      ftpClient = FtpClient.create();      ftpClient.connect(newInetSocketAddress(url, port));      ftpClient.login(user, password.toCharArray());      ftpClient.setBinaryType();      if(!"".equals(remoteFilePath) && remoteFilePath != null) {        ftpClient.changeDirectory(remoteFilePath);      }    }catch(IOException e) {      e.printStackTrace();    }  }     publicstaticvoid closeFTP() {    try{      if(ftpClient != null) {        ftpClient.close();      }    }catch(IOException e) {      e.printStackTrace();    }  }     publicstaticboolean upload(File file, String filePath, String fileName) {    TelnetOutputStream to = null;    FileInputStream fi = null;    filePath = remoteFilePath + Constants.FILE_SEPARATOR + filePath;    try{      if(file != null) {        connectFTP();        if(!isDirExist(filePath.replace("\\","/"))) {          createDir(filePath.replace("\\","/"));          ftpClient.changeDirectory(filePath.replace("\\","/"));        }        fi = newFileInputStream(file);        to = (TelnetOutputStream) ftpClient.putFileStream(fileName, true);        byte[] bytes = newbyte[1024];        inti = fi.read(bytes);        while(i != -1) {          to.write(bytes);          i = fi.read(bytes);        }      }      returntrue;    }catch(FileNotFoundException e1) {      returnfalse;    }catch(IOException e2) {      returnfalse;    }catch(Exception e) {      returnfalse;    }finally{      if(fi != null) {        try{          fi.close();        }catch(IOException e) {          e.printStackTrace();        }      }      if(to != null) {        try{          to.flush();          to.close();        }catch(IOException e) {          e.printStackTrace();        }      }      closeFTP();    }  }     publicstaticboolean deleteFileFtp(String filePath, String fileName){     try{      connectFTP();      filePath = remoteFilePath + Constants.FILE_SEPARATOR + filePath + Constants.FILE_SEPARATOR;      if(!isDirExist(filePath.replace("\\","/"))) {        returnfalse;      }      ftpClient.changeDirectory(filePath.replace("\\","/"));      ftpClient.deleteFile(fileName);      returntrue;    }catch(Exception e) {      e.printStackTrace();      returnfalse;    }finally{      closeFTP();    }  }    privatestaticBoolean isDirExist(String dir) {    try{      ftpClient.changeDirectory(dir);    }catch(Exception e) {      returnfalse;    }    returntrue;  }     privatestaticvoid createDir(String dir) throwsException {    ftpClient.setAsciiType();    StringTokenizer s = newStringTokenizer(dir,"/");// sign    s.countTokens();    String pathName = "";    while(s.hasMoreElements()) {      pathName = pathName + "/"+ (String) s.nextElement();      try{        ftpClient.makeDirectory(pathName);      }catch(Exception e) {        e = null;      }    }    ftpClient.setBinaryType();   } }

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯