android文件上傳fttp的各種操作代碼實例_第1頁
android文件上傳fttp的各種操作代碼實例_第2頁
android文件上傳fttp的各種操作代碼實例_第3頁
android文件上傳fttp的各種操作代碼實例_第4頁
android文件上傳fttp的各種操作代碼實例_第5頁
免費預覽已結束,剩余14頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、packagecom.yokoto.utils;importjava.io.File;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.io.RandomAccessFile;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.List;.ftp.FTP;.ftp.FTPClient;.ftp.FTPClientConfig;

2、.ftp.FTPFile;.ftp.FTPReply;importandroid.os.Handler;publicclassFtpUtil/*連接 FTP 服務器*paramport* paramusername* parampassword* return* authorLouison2010-11-27&memoryCatV1.0*/publicstaticFTPClientconnectFtp(StringserverUrl,intport,Stringusername,Stringpassword)serverUrl=EncryptUtil.decode(serverUrl)

3、;username=EncryptUtil.decode(username);password=EncryptUtil.decode(password);FTPClientftp=newFTPClient();ftp.setControlEncoding(GBK);tryif(port=0)ftp.connect(serverUrl);elseftp.connect(serverUrl,port);if(ftp.login(username,password)FTPClientConfigconf=newFTPClientConfig(getSystemKey(ftp.getSystemNam

4、e();conf.setServerLanguageCode(zh);ftp.configure(conf);intreply=ftp.getReplyCode();if(!FTPReply.isPositiveCompletion(reply)ftp.disconnect();ftp.logout();elseftp.enterLocalPassiveMode();ftp.setFileType(FTP.BINARY_FILE_TYPE);returnftp;elsereturnnull;catch(IOExceptione)returnnull;returnnull;publicstati

5、cvoiduploadFile(FTPClientftp,StringserverDir,StringlocalFile,handler,Stringmessage)uploadFile(ftp,serverDir,newFile(localFile),handler,message);/*上載本地文件到 FTP 目錄*paramftp*paramserverDirFTP 目錄*paramlocalFile本地文件*authorLouison2010-11-29&memoryCatV1.0*/publicstaticvoiduploadFile(FTPClientftp,Strings

6、erverDir,FilelocalFile,handler,Stringmessage)tryftp.initiateListParsing();FTPFile 口 remoteFiles=ftp.listFiles();if(localFile.isFile()HandlerHandlerStringname=localFile.getName();/假如服務器不存在這個目錄,則創(chuàng)建它(只支持 mkdir,不支持 mkdirs 的多級目錄創(chuàng)建)if(ftp.listFiles(serverDir)=null|ftp.listFiles(serverDir).length=0)ftp.mak

7、eDirectory(serverDir);OutputStreamos=ftp.storeFileStream(serverDir+name);if(os!=null)RandomAccessFileraf=newRandomAccessFile(localFile,rw);/如果遠程文件存在,并且小于當前文件大小FTPFileremoteFile=existsFile(remoteFiles,localFile);if(remoteFile!=null&raf.length()=remoteFile.getSize()raf.seek(remoteFile.getSize();lo

8、ngupLoadFileSize=0;byte 口 buf=newbyte1024;do/循環(huán)讀取,每次讀取 1kbintnumread=raf.read(buf);if(numread=-1)break;)os.write(buf,0,numread);os.flush();upLoadFileSize+=numread;if(message!=null)HandlerUtil.updateTitle(handler,message+(upLoadFileSize/1024)+kb);)while(true);raf.close();os.close();if(pletePendingCom

9、mand()System.out.println(done!);elseSystem.out.println(cantputfile:+name);elseSystem.out.println(cantputfile:+name);/TODOAuto-generatedcatchblocke.printStackTrace();/*上載本地目錄到 FTP 目錄* paramftp* paramserverDir* paramlocalDir* throwsIOException* /privatestaticvoiduploadFiles(FTPClientftp,StringserverDi

10、r,FilelocalDir)tryftp.initiateListParsing();FTPFile 口 remoteFiles=ftp.listFiles();FilelocalFiles=localDir.listFiles();for(Filefile:localFiles)if(file.isFile()Stringname=file.getName();intcount=ftp.list(serverDir);if(count=0)ftp.makeDirectory(serverDir);)OutputStreamos=ftp.storeFileStream(serverDir+n

11、ame);if(os!=null)RandomAccessFileraf=newRandomAccessFile(file,rw);/如果遠程文件存在,并且小于當前文件大小FTPFileremoteFile=existsFile(remoteFiles,file);if(remoteFile!=null&raf.length()=remoteFile.getSize()raf.seek(remoteFile.getSize();)bytebuf=newbyte1024;do/循環(huán)讀取,每次讀取 1kbintnumread=raf.read(buf);if(numread=-1)brea

12、k;)os.write(buf,0,numread);os.flush();while(true);raf.close();os.close();if(pletePendingCommand()System.out.println(done!);elseSystem.out.println(cantputfile:+name);elseSystem.out.println(cantputfile:+name);catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();/*下載 FTP 文件到本地文件*paramftp

13、*paramserverDir* paramlocalDir* throwslOException*/publicstaticvoiddownloadFile(FTPClientftp,StringserverFile,FilelocalFile,Handlerhandler,Stringmessage)tryif(!localFile.exists()localFile.createNewFile();elselocalFile.delete();localFile.createNewFile();longpos=localFile.length();RandomAccessFileraf=

14、newRandomAccessFile(localFile,rw);raf.seek(pos);ftp.setRestartOffset(pos);InputStreamis=ftp.retrieveFileStream(serverFile);if(is=null)System.out.println(nosuchfile:);elselongdownLoadFileSize=0;bytebuf=newbyte1024;do/循環(huán)讀取,每次讀取 1kbintnumread=is.read(buf);if(numread=-1)break;raf.write(buf,0,numread);do

15、wnLoadFileSize+=numread;if(message!=null)HandlerUtil.updateTitle(handler,message+(downLoadFileSize/1024)+KB);while(true);is.close();if(pletePendingCommand()System.out.println(done!);elseSystem.out.println(cantgetfile:);raf.close();catch(lOExceptione)e.printStackTrace();/* 判斷 FTP 服務器上是否存在某文件* paramft

16、p* paramserverDir* paramserverFile* return* authorLouison2010-11-27&memoryCatV1.0*/publicstaticbooleancheckFileExist(FTPClientftp,StringserverDir,StringserverFile)FTPFilefiles=null;tryfiles=ftp.listFiles(serverDir);/TODOAuto-generatedcatchblocke.printStackTrace();)if(files!=null&files.length

17、0)for(FTPFile 即 File:files)if(serverFile.equals(ftpFile.getName()returntrue;)returnfalse;)/* 找到 FTP 目錄下某種類型文件* paramftp* paramserverDir* paramfileType* 如:zip 類型* return*authorLouison2010-11-27&memoryCatV1.0*/publicstaticStringfindSDCardFile(FTPClientftp,StringserverDir,finalStringfileType)(FTPFi

18、lefiles=null;try(files=ftp.listFiles(serverDir);catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();Listlist=newArrayList();if(files!=null&files.length0)for(FTPFile 即 File:files)if(ftpFile.getName().endsWith(fileType)list.add(ftpFile.getName();Collections.sort(list,newComparator(

19、)Overridepublicintcompare(Stringstr1,Stringstr2)pareTo(str1););Stringret=newStringlist.size();returnlist.toArray(ret);/* 創(chuàng)建 FTP 上目錄* paramserverDir* return* authorLouison2010-11-27&memoryCatV1.0*/publicstaticbooleancreateDir(FTPClientftp,StringserverDir)FTPFilefiles=null;tryfiles=ftp.listFiles(s

20、erverDir);if(files=null|files.length=0)ftp.makeDirectory(serverDir);catch(lOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();returntrue;/* 退出 FTP 服務器* paramftp* authorLouison2010-11-27&memoryCatV1.0*/publicstaticvoidlogout(FTPClientftp)tryif(ftp!=null&ftp.isConnected()ftp.logout();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();/*Function:* paramsystemName* return* authorLouisFeb26,2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論