JDK1.7以上javaFTP上傳刪除文件的實現(xiàn)方法
更新時間:2017年11月27日 11:45:52 作者:OkidoGreen
下面小編就為大家分享一篇JDK1.7以上javaFTP上傳刪除文件的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
實例如下:
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;
/**
*
FTP上傳工具類
*
*
@author yanzhou
*
@version v1.0
*/
publicclass
FTPUtil {
privatestatic
FtpClient ftpClient = null;
privatestatic
final
String url;
privatestatic
final
int
port;
privatestatic
final
String user;
privatestatic
final
String password;
privatestatic
final
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");
}
/**
*
鏈接FTP
*
@throws FtpProtocolException
*/
privatestatic
void
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();
}
}
/**
*
關(guān)閉FTP鏈接
*/
publicstatic
void
closeFTP() {
try{
if(ftpClient
!= null)
{
ftpClient.close();
}
}catch(IOException
e) {
e.printStackTrace();
}
}
/**
*
上傳文件到FTP
*
@param file file文件,struts2從頁面得到的File類型
*
@param filePath 要保存在FTP上的路徑(文件夾)
*
@param fileName 文件名(test001.jpg)
*
@return 文件是否上傳成功
*
@throws Exception
*/
publicstatic
boolean
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();
}
}
/**
*
刪除FTP制定目錄下的文件
*
@param filePath 文件在FTP存儲的路徑
*
@param fileName 要刪除的文件名稱
*
@return 是否刪除成功
*/
publicstatic
boolean
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();
}
}
/**
*
檢查文件夾是否存在
*
*
@param dir
*
@param ftpClient
*
@return
*/
privatestatic
Boolean isDirExist(String dir) {
try{
ftpClient.changeDirectory(dir);
}catch(Exception
e) {
returnfalse;
}
returntrue;
}
/**
*
創(chuàng)建文件夾
*
*
@param dir
*
@param ftpClient
*
@throws Exception
*/
privatestatic
void
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();
}
}
2. 常量類,系統(tǒng)的路徑分隔符
packagecom.itv.launcher.util;
publicinterface
Constants {
//路徑分隔符
publicstatic
String FILE_SEPARATOR = System.getProperty("file.separator");
}
3. FTP鏈接的配置properties文件,包括用戶名密碼一些信息
#FTP的IP地址 FTP_URL=127.0.0.1 #FTP端口號 FTP_PORT=1234 #用戶名 FTP_USER=yanzhou #密碼 FTP_PASSWORD=abcdefg12345 #FTP賬號目錄 FTP_REMOTE_FILEPATH=
以上這篇JDK1.7以上javaFTP上傳刪除文件的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis多個區(qū)間處理方式(雙foreach循環(huán))
這篇文章主要介紹了mybatis多個區(qū)間處理方式(雙foreach循環(huán)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
SpringBoot使用郵箱發(fā)送驗證碼實現(xiàn)注冊功能
這篇文章主要為大家詳細(xì)介紹了SpringBoot使用郵箱發(fā)送驗證碼實現(xiàn)注冊功能實例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02
Spring MVC參數(shù)校驗詳解(關(guān)于`@RequestBody`返回`400`)
這篇文章主要介紹了Spring MVC參數(shù)校驗的相關(guān)資料,主要是針對`@RequestBody`返回`400`的問題,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08

