sun.net.ftp.FtpClient 上传文件和文件夹应用(改变相关文件中的内容)
2012-05-04 18:40
453 查看
package com.teenysoft.usermanager;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
/**
* Class FtpFileUpload.java
* Function 使用ftp上传文件、目录
*/
public class FtpFileUpload {
private FtpClient ftpClient=null;
public FtpFileUpload(){
ftpClient=new FtpClient();
ftpClient.setConnectTimeout(5000);
}
public void connect(String host,int port,String user,String password)throws IOException{
ftpClient.openServer(host,port);
ftpClient.login(user,password);
ftpClient.binary();
}
public void cd(String relativePath)throws IOException{
ftpClient.cd(relativePath);
}
public void uploadDirectory(String directory,boolean bl,String nameFtp,String n,String serverIp,String username,String password)throws IOException{
File file=new File(directory);
String name=null;//待上传文件名
if(file.isDirectory()){//如果为目录,则按目录传
File[] files=file.listFiles();
//在ftp服务器上创建对应目录
ftpClient.ascii();
String dir = file.getName();
if(bl){
dir = nameFtp;
bl = false;
}
ftpClient.sendServer("XMKD " + dir + "\r\n");
ftpClient.readServerResponse();
ftpClient.cd(dir);
ftpClient.binary();
//循环传递目录下的所有文件与目录
int i=0;
for(i=0;i<files.length;i++){
File tmpFile=files[i];
if(tmpFile.isDirectory()){
ftpClient.cd("..");
ftpClient.cd(dir);
uploadDirectory(tmpFile.getAbsolutePath(),bl,nameFtp, n, serverIp, username, password);
}else{
ftpClient.cd("..");
ftpClient.cd(dir);
name=tmpFile.getName();
upload(directory+"/"+name, n, serverIp, username, password);
}
}
ftpClient.cd("..");
}
else //如果为文件,则按文件上传
upload(directory,file.getName(), n, serverIp, username, password);
}
public void upload(String srcFile,String n,String serverIp,String username,String password)throws IOException{
File file=new File(srcFile);
FileInputStream fin=new FileInputStream(srcFile);
TelnetOutputStream tos = ftpClient.put(file.getName());
if(file.getName().equals("spring.xml")){
InputStreamReader ie=new InputStreamReader(fin, "utf-8");
BufferedReader reader = new BufferedReader(ie);
String line = null;
while ((line = reader.readLine()) != null) {
if(line.indexOf("serverIp")!=-1){
line=line.replaceAll("serverIp", serverIp);
line=line.replaceAll("dataName", n);
}
if(line.indexOf("datausername")!=-1){
line=line.replaceAll("datausername", username);
}
if(line.indexOf("datapassword")!=-1){
line=line.replaceAll("datapassword", password);
}
tos.write(line.getBytes("utf-8"));
System.out.println("----------------1--------");
}
System.out.println("----------------2--------");
reader.close();
ie.close();
}else{
int readLength = 0;
byte[] buf = new byte[1024];
while ( (readLength = fin.read(buf)) != -1) {
tos.write(buf, 0, readLength);
}
}
fin.close();
tos.close();
}
public void upload(String srcFile,String destFile,String n,String serverIp,String username,String password)throws IOException{
upload(srcFile, n, serverIp, username, password);
File file=new File(srcFile);
ftpClient.rename(file.getName(), destFile);
}
public void close(){
try {
ftpClient.closeServer();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
FtpFileUpload ftpUpload=new FtpFileUpload();
try {
ftpUpload.connect("192.168.0.253",21,"wgr","123");
ftpUpload.uploadDirectory("E:/ztTest/appTest/t8",true,"wgr","wgr","192.168.0.253","sa","");
System.out.println("ok");
ftpUpload.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
/**
* Class FtpFileUpload.java
* Function 使用ftp上传文件、目录
*/
public class FtpFileUpload {
private FtpClient ftpClient=null;
public FtpFileUpload(){
ftpClient=new FtpClient();
ftpClient.setConnectTimeout(5000);
}
public void connect(String host,int port,String user,String password)throws IOException{
ftpClient.openServer(host,port);
ftpClient.login(user,password);
ftpClient.binary();
}
public void cd(String relativePath)throws IOException{
ftpClient.cd(relativePath);
}
public void uploadDirectory(String directory,boolean bl,String nameFtp,String n,String serverIp,String username,String password)throws IOException{
File file=new File(directory);
String name=null;//待上传文件名
if(file.isDirectory()){//如果为目录,则按目录传
File[] files=file.listFiles();
//在ftp服务器上创建对应目录
ftpClient.ascii();
String dir = file.getName();
if(bl){
dir = nameFtp;
bl = false;
}
ftpClient.sendServer("XMKD " + dir + "\r\n");
ftpClient.readServerResponse();
ftpClient.cd(dir);
ftpClient.binary();
//循环传递目录下的所有文件与目录
int i=0;
for(i=0;i<files.length;i++){
File tmpFile=files[i];
if(tmpFile.isDirectory()){
ftpClient.cd("..");
ftpClient.cd(dir);
uploadDirectory(tmpFile.getAbsolutePath(),bl,nameFtp, n, serverIp, username, password);
}else{
ftpClient.cd("..");
ftpClient.cd(dir);
name=tmpFile.getName();
upload(directory+"/"+name, n, serverIp, username, password);
}
}
ftpClient.cd("..");
}
else //如果为文件,则按文件上传
upload(directory,file.getName(), n, serverIp, username, password);
}
public void upload(String srcFile,String n,String serverIp,String username,String password)throws IOException{
File file=new File(srcFile);
FileInputStream fin=new FileInputStream(srcFile);
TelnetOutputStream tos = ftpClient.put(file.getName());
if(file.getName().equals("spring.xml")){
InputStreamReader ie=new InputStreamReader(fin, "utf-8");
BufferedReader reader = new BufferedReader(ie);
String line = null;
while ((line = reader.readLine()) != null) {
if(line.indexOf("serverIp")!=-1){
line=line.replaceAll("serverIp", serverIp);
line=line.replaceAll("dataName", n);
}
if(line.indexOf("datausername")!=-1){
line=line.replaceAll("datausername", username);
}
if(line.indexOf("datapassword")!=-1){
line=line.replaceAll("datapassword", password);
}
tos.write(line.getBytes("utf-8"));
System.out.println("----------------1--------");
}
System.out.println("----------------2--------");
reader.close();
ie.close();
}else{
int readLength = 0;
byte[] buf = new byte[1024];
while ( (readLength = fin.read(buf)) != -1) {
tos.write(buf, 0, readLength);
}
}
fin.close();
tos.close();
}
public void upload(String srcFile,String destFile,String n,String serverIp,String username,String password)throws IOException{
upload(srcFile, n, serverIp, username, password);
File file=new File(srcFile);
ftpClient.rename(file.getName(), destFile);
}
public void close(){
try {
ftpClient.closeServer();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
FtpFileUpload ftpUpload=new FtpFileUpload();
try {
ftpUpload.connect("192.168.0.253",21,"wgr","123");
ftpUpload.uploadDirectory("E:/ztTest/appTest/t8",true,"wgr","wgr","192.168.0.253","sa","");
System.out.println("ok");
ftpUpload.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关文章推荐
- sun.net.ftp.FtpClient上传,下载,移动文件,修改文件等等
- sun.net.ftp.FtpClient 删除文件夹删除文件
- sun.net.ftp.FtpClient下载、上传文件
- org.apache.commons.net.ftp.FTPClient上传文件大小改变的解决方法
- asp.net ftp 上传,下载,删除文件,创建文件夹,删除文夹,重命名类
- sun.net.ftp.FtpClient 操作FTP服务器上的文件和目录
- 使用sun.net.ftp.FtpClient进行上传功能开发,在jdk1.7上不适用问题的解决
- com.enterprisedt.net.ftp.FTPClient FTP文件上传操作
- org.apache.commons.net.ftp.FTPClient文件上传下载,中文乱码
- apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出
- 利用Apache commons-net 包进行FTP文件和文件夹的上传与下载
- org.apache.commons.net.ftp.FTPClient上传、下载、修改文件等功能
- apache-commons-net Ftp 进行文件、文件夹的上传下载及日志的输出
- 使用sun.net.ftp.FtpClient进行上传功能开发,在jdk1.7上不适用问题的解决
- java FTPClient 文件上传内容为空
- Commons.net FTPClient 上传文件
- sun.net.ftp.FtpClient 操作FTP服务器上的文件和目录
- 使用sun.net.ftp下载、上传文件完整版
- org.apache.commons.net.ftp.FTPClient----根据文件名,路径检索文件 FTP上传 下载 删除文件
- sun.net.ftp.FtpClient 删除文件夹