ftpclient下载文件的时候字节小了200多b,下载的pdf文件文字不能显示内容。

1 篇文章 0 订阅

下面代码正常下载。
public boolean downFileFromFTP(String url, int port, String username,
String password, String remotePath, String fileName,
String localPath) {
boolean success = false;

	FTPClient ftp = new FTPClient();
	
	logger.info( "url="+url );
	logger.info( "port="+port );
	logger.info( "username="+username );
	logger.info( "password="+password );
	logger.info( "remotePath="+remotePath );
	logger.info( "localPath="+localPath );
	logger.info( "fileName="+fileName );
	
	try {
		
		ftp.connect(url, port);
		logger.info( "连接FTP服务器成功!" );

// ftp.setControlEncoding(“GBK”);
ftp.login(username, password);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
logger.info( “登录FTP服务器成功!” );

		//设置linux环境
		FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
        ftp.configure(conf);
        
        //判断是否连接成功
		int reply = ftp.getReplyCode();
		if (!FTPReply.isPositiveCompletion(reply)) {
			System.out.println("***reply["+reply+"]");
			ftp.disconnect();
			return success;
		}
		
		ftp.changeWorkingDirectory(remotePath);
		logger.info( "进入远程目录1:"+ remotePath );
		
		// 设置被动模式
		ftp.setRemoteVerificationEnabled(false);
		ftp.enterLocalPassiveMode();
		
		FTPFile[] fs = ftp.listFiles();
		logger.info( "远程目录文件列表:"+ fs.toString() );
		
		logger.info("v9.91");
		for (FTPFile ff : fs) {
			if (!ff.getName().equals(fileName))
				continue;
			File localFile = new File(localPath + "/" + ff.getName());
			OutputStream is = new FileOutputStream(localFile);
			ftp.retrieveFile(ff.getName(), is);

// ftp.retrieveFile(new String(ff.getName().getBytes(“GBK”),“ISO-8859-1”), is);
is.close();
}
ftp.logout();

		success = true;
	} catch (IOException e) {
		//System.out.println("error2" + e.getMessage());
		logger.info( "error:" + e.getMessage() );
		e.printStackTrace();
		if (ftp.isConnected())
			try {
				ftp.disconnect();
			} catch (IOException localIOException2) {
			}
	} finally {
		if (ftp.isConnected())
			try {
				ftp.disconnect();
			} catch (IOException localIOException3) {
			}
	}
	return success;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值