String client_path = "D://answer/data/"
;
//
服务器上的存放数据文件路径
String server_path = "/home/download/file_tmp/"
;
String hostname
= "192.25.125.112"
;
String ftpusername
= "root"
;
String ftppwd
= “123456”
;
int
port = 21
;
//
查找路径下的指定txt文件,然后采用FTP上传
File file_name =
new
File(client_path+
fileNmae);
if
(!
file_name.exists()){
return
false
;
//
创建ftp客户端
FTPClient ftpClient =
new
FTPClient();
ftpClient.setControlEncoding(
"utf-8"
);
//
主动模式
ftpClient.enterLocalActiveMode();
String getfileName
=
file_name.getName();
String getfileNamePath
=
file_name.getPath();
if
((getfileName.substring(getfileName.lastIndexOf(".")).trim().equals(".txt"
))){
try
{
//
链接ftp服务器
ftpClient.connect(hostname, port);
//
登录ftp
ftpClient.login(ftpusername, ftppwd);
int
reply =
ftpClient.getReplyCode();
if
(!
FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
logger.info(
"Returns a 530 password username error or the current user does not have permission to close the FTP connection"
);
return
false
;
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
String server_file_name = server_path+
getfileName;
InputStream input
=
new
FileInputStream(getfileNamePath);
OutputStream out
=
ftpClient.storeFileStream(server_file_name);
byte
[] byteArray =
new
byte
[4096
];
int
read = 0
;
while
((read = input.read(byteArray)) != -1
) {
out.write(byteArray,
0
, read);
out.close();
ftpClient.logout();
}
catch
(SocketException e) {
flag
=
false
;
e.printStackTrace();
}
catch
(IOException e) {
flag
=
false
;
e.printStackTrace();
}
catch
(Exception e) {
flag
=
false
;
e.printStackTrace();
}
finally
{
if
(ftpClient.isConnected()) {
try
{
ftpClient.disconnect();
}
catch
(IOException ioe) {
ioe.printStackTrace();
return
flag;
(2)方法二:storeFile()方法,没有设置缓冲区,速度慢,50M的txt文件需要100秒;
//FTP传输到数据库服务器
public boolean uploadServerByFtp(String fileNmae){
boolean flag = true;
//客户端数据文件路径
String client_path = "D://answer/data/";
//服务器上的存放数据文件路径
String server_path = "/home/download/file_tmp/";
String hostname = "192.25.125.112";
String ftpusername = "root";
String ftppwd = “123456”;
int port = 21;
//查找路径下的指定txt文件,然后采用FTP上传
File file_name = new File(client_path+fileNmae);
if(!file_name.exists()){
return false;
//创建ftp客户端
FTPClient ftpClient = new FTPClient();
ftpClient.setControlEncoding("utf-8");
String getfileName = file_name.getName();
String getfileNamePath = file_name.getPath();
if((getfileName.substring(getfileName.lastIndexOf(".")).trim().equals(".txt"))){
try {
//链接ftp服务器
ftpClient.connect(hostname, port);
//登录ftp
ftpClient.login(ftpusername, ftppwd);
int reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
logger.info("Returns a 530 password username error or the current user does not have permission to close the FTP connection");
return false;
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
String server_file_name = server_path+ getfileName;
//读取源文件流(客户端文件)
InputStream client_fileInput = new FileInputStream(getfileNamePath);
//传送到服务端
ftpClient.storeFile(server_file_name, client_fileInput);
client_fileInput.close();
ftpClient.logout();
} catch (SocketException e) {
flag = false;
e.printStackTrace();
} catch (IOException e) {
flag = false;
e.printStackTrace();
} catch (Exception e) {
flag = false;
e.printStackTrace();
}finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException ioe) {
ioe.printStackTrace();
return flag;