FtpClient appendFile方法丢数据

问题描述

FtpClientappendFile方法丢数据常用时间通过FtpClientappendFile方法上传数据到服务器后,发现有丢数据问题。方法如下,请大家给看看,非常感激:/***initSession**@return*@throwsIOException*/publicsynchronizedbooleaninitSession()throwsIOException{logger.info("FtpinitSession,hostname:"+hostname+",port:"+port+",username:"+username+",status:"+status);if(this.status==0){logger.debug("Status:0,neednotinitsessionrightrow.");returnfalse;}if(this.isConnected()){returntrue;}if(this.threadFtpMaintain==null){this.initFtpMaintain();}try{if(port>0){this.ftp.connect(hostname,port);}else{this.ftp.connect(hostname);}ftp.setBufferSize(10*1024);ftp.setSoTimeout(60*1000);ftp.setDataTimeout(60*1000);//ftp.setDefaultTimeout(10*1000);ftp.setKeepAlive(true);logger.info("Ftpconnectsucceed.hostname:"+hostname+",port:"+port);}catch(UnknownHostExceptionuhex){logger.error("Ftpconnectfailed.hostname:"+hostname+",port:"+port,uhex);throwuhex;}catch(IOExceptionioex){logger.error("Ftpconnectfailed.hostname:"+hostname+",port:"+port,ioex);throwioex;}finally{}StringreplyString=null;try{logger.debug("Ftplogin,username:"+username);this.ftp.user(username);replyString=this.ftp.getReplyString();logger.debug("Ftplogin,password:"+password);this.ftp.pass(password);replyString=this.ftp.getReplyString();if(FTPReply.isPositiveCompletion(this.ftp.getReplyCode())){this.ftp.syst();this.ftp.setFileType(FTPClient.BINARY_FILE_TYPE);//this.ftp.enterLocalPassiveMode();this.connected=true;logger.debug("Ftploginsucceed,hostname:"+hostname+",port:"+port+",username:"+username+",status:"+status+",isConnected:"+isConnected());returntrue;}else{this.connected=false;logger.warn("Ftploginfailed,replyString:"+replyString);returnfalse;}}catch(IOExceptionex){this.connected=false;logger.error("Ftploginfailed,username:"+username+",password:"+password,ex);throwex;}finally{replyString=null;}}publicsynchronizedbooleanappendFile(StringremoteFile,Stringcontent)throwsIOException{lock=Calendar.getInstance().getTimeInMillis();logger.debug("FtpappendFile,remoteFile:"+remoteFile+",content:"+content);StringreplyString=null;intreplyCode=-99;InputStreaminputStream=null;try{inputStream=newByteArrayInputStream(content.getBytes());this.ftp.appendFile(remoteFile,inputStream);replyString=this.ftp.getReplyString();replyCode=this.ftp.getReplyCode();if(FTPReply.isNegativeTransient(replyCode)||FTPReply.isNegativePermanent(replyCode)){logger.warn("FtpappendFilefailed,remoteFile:"+remoteFile+",content:"+content+",replyString:"+replyString);returnfalse;}else{logger.debug("FtpappendFilesucceed,remoteFile:"+remoteFile+",content:"+content+",replyString:"+replyString);returntrue;}}catch(IOExceptione1){//TODOAuto-generatedcatchblocklogger.warn("FtpappendFileContentfailed,remoteFile:"+remoteFile+",content:"+content+"n"+e1);//this.connected=false;throwe1;}finally{if(inputStream!=null){try{inputStream.close();}catch(IOExceptione){//TODOAuto-generatedcatchblocklogger.warn(e);}}replyString=null;}}

解决方案

解决方案二:
[code=c][code=java]

[/code][/code]

时间: 2025-01-24 21:26:56

FtpClient appendFile方法丢数据的相关文章

不怕丢数据 VPS定时自动备份终极指南

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 近半年,先后丢失5个网站数据,大多都是由于VPS硬盘损坏造成,RAID10为了速度是很不保险的 最近的2次分别 是DirectSpace 和 BuyVM 所以,必需备份,作好VPS随时准备丢失数据的准备 昨天花了一整天,把目前所有的站做了每日同步,以下分享给大家实际操作方法. 转载请注明原文出处 http://www.21andy.com/b

用字典的write方法写数据,plist文件的创建失败

问题描述 用字典的write方法写数据,plist文件的创建失败 我有一个字典,字典数据是从网上get过来的 我用字典自带的write方法写数据进plist时候,plist文件不创建,路径没问题,请问是有什么其他原因么 解决方案 http://www.xuebuyuan.com/2066987.html

xmlhttp Post方法提交数据到服务器端后出现乱字符的问题!!!

xml|服务器|数据|问题 xmlhttp Post方法提交数据到服务器端后出现乱字符的问题!!! 本例子需要两个文件:xmlencode.htm和xmlencode.asp======================================xmlencode.htm============ xmlencode.asp============ 这是孟子E章提供的一个方法,但是不知道该怎么用,怎么和下面的代码加在一起用.strA="submit1=Submit&str="

Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)

[正文]  一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 "超文本传输协议",是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议,是Internet上目前使用最广泛的应用层协议,它基于传输层的TCP协议进行通信,HTTP协议是通用的.无状态的协议. 这几个名词有一种通俗的解释: 通讯协议:双方对话的标准 通用的:用了都说好,谁用谁知道 无状态的:翻脸不认人 超文本:除了文本,还可以是音频.视频 HTTP协议与Android开发

php-PHP低版本中,类对象在使用方法提取数据后直接使用数组访问符号是否有问题?

问题描述 PHP低版本中,类对象在使用方法提取数据后直接使用数组访问符号是否有问题? "$this->somemethod()[]"是否会出问题?如果是在foreach循环呢?PHP版本为5.3 解决方案 somemethod()如果返回的是数组,这么写没有问题.

handle-关于Android中调用了post方法后数据还是显示不出来的问题

问题描述 关于Android中调用了post方法后数据还是显示不出来的问题 Map params = new HashMap(); params.put(HZConstants.USER_TOKEN, HZApplication.get().getToken()); NetworkController.getInstance(mContext).drawperform(params,new NetworkCallBack() { @Override public void response(St

Java基础教程之对象的方法与数据成员_java

在Java基础教程之从Hello World到面向对象一文中,我们初步了解了对象(object).对象中的数据成员表示对象的状态.对象可以执行方法,表示特定的动作. 此外,我们还了解了类(class).同一类的对象属于相同的类型(type).我们可以定义类,并使用该定义来产生对象. 我们进一步深入到对象.了解Java中方法与数据成员的一些细节. 调用同一对象的数据成员 方法可以调用该对象的数据成员.比如下面我们给Human类增加一个getHeight()的方法.该方法返回height数据成员的值

android scrollview-重写的ListView onMeasure()方法,数据加载多了最后一行总是显示不全

问题描述 重写的ListView onMeasure()方法,数据加载多了最后一行总是显示不全 ScrollView嵌套ListView重写的ListView onMeasure()方法,数据加载多了最后一行总是显示不全,这个有人遇到过嘛 解决方案 没有这个问题,显示不全是因为你的onMeasure没有对吧 int expandSpec = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); su

Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)

[正文] 在前两篇文章中,我们学习到了和HTTP相关的基础知识.文章链接如下: Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) Android系列之网络(二)----HTTP请求头与响应头 一.GET和POST的对比: 在漫长的时间当中,其他的方法逐渐的退出了历史舞台,最常用的只剩下GET和POST方法.而之前已经讲过了通过GET方法获取数据,今天来学习一下如何分别通过GET和POST获取数据. 举个例子:get类似于明信片,只有请求头,