利用Java操作FTP文件上传,下载,删除

在执行java定时任务时,可能会操作ftp服务器文件,为此学习了apache的FTPClient,再此与大家一起分享

话不多说,直接上代码:

登陆:

//建立连接
	  //地址,用户名,用户密码,端口(默认21)
      public FTPUtil(String ftpHost, String ftpPassword,  
              String ftpUserName, int ftpPort) throws SocketException, IOException{
    	  ftp=new FTPClient();
    	  ftp.connect(ftpHost,ftpPort);
    	  ftp.login(ftpUserName, ftpPassword);
    	  if(FTPReply.isPositiveCompletion(ftp.getReplyCode())){
    		  System.out.println("连接成功");
    	  }else{
    		  System.out.println("连接失败");
    	  }
      }
下载文件:

//下载文件
      //下载路径,保存路径,保存地址,保存文件名
      public void download(String ftpPath, String name,String outurl,String fileName) throws IOException{
    	  InputStream in=readConfigFileForFTP(ftpPath, name); 
    	  File file=new File(outurl,fileName); 
    	  FileOutputStream out =new FileOutputStream(file);
    	  if (in != null) {
    	  int b;  
    	  while((b = in.read()) != -1){  
              out.write(b);
          }
    	  }
    	  in.close();
    	  out.close();
      }

//读取文件
      //文件路径,文件名称,链接
      public InputStream readConfigFileForFTP(String ftpPath, String fileName) {    
          InputStream in = null;   
          try { 
              ftp.setControlEncoding("UTF-8"); // 中文支持  
              ftp.setFileType(FTPClient.BINARY_FILE_TYPE);  
              ftp.enterLocalPassiveMode();  
              ftp.changeWorkingDirectory(ftpPath);  
              in = ftp.retrieveFileStream(fileName);
          } catch (FileNotFoundException e) {   
              e.printStackTrace();  
              System.out.println("读取文件失败,请联系管理员.");
          } catch (SocketException e) {   
              e.printStackTrace();  
          } catch (IOException e) {  
              e.printStackTrace(); 
          }
          return in;
      }  

上传文件:

//上传文件
	  //上传路径,上传文件名,本地路径,本地文件名
	  public void upload(String path, String filename, String url, String fm) throws IOException{
		  File file=new File(url,fm);
		  InputStream in=new FileInputStream(file);
		  //由于传输文件名,所以将文件名编码转为"iso-8859-1"
		  filename=new String(filename.getBytes("UTF-8"),"iso-8859-1");
          ftp.changeWorkingDirectory(path);  
          ftp.storeFile(filename, in);
          in.close();
	  }

删除文件:

//删除文件
	  //文件全限定名称
	  public boolean remove(String srcFname) throws IOException{
		  //由于传输文件名,所以将文件名编码转为"iso-8859-1"
		  srcFname=new String(srcFname.getBytes("UTF-8"),"iso-8859-1");
		  return ftp.deleteFile(srcFname); 
	    } 

ps:看完后别着急走,留些意见吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值