當前位置:首頁 » 文件管理 » java向ftp寫字元串

java向ftp寫字元串

發布時間: 2022-07-08 16:38:37

java 字元串 上傳 ftp 必須得轉換成文件寫道本地後再拿本地文件上傳ftp伺服器嗎

沒錯,FTP的傳送是基於文件的。

可以使用WEB的方式、Socket等直接傳送的方式

② 用java有一個ftp路徑地址,需要把傳送一些數據到ftp中怎樣實現

1.使用的FileZillaServer開源,安裝過後建立的本地FTP伺服器。2.使用的apache上FTP工具包,引用到工程目錄中。3.IDE,Eclipse,JDK6上傳和目錄的實現原理:對每一個層級的目錄進行判斷,是為目錄類型、還是文件類型。如果為目錄類型,採用遞歸調用方法,檢查到最底層的目錄為止結束。如果為文件類型,則調用上傳或者方法對文件進行上傳或者操作。貼出代碼:(其中有些沒有代碼,可以看看,還是很有用處的)!

③ 如何用java實現ftp客戶端程序

FTP 的主要操作都是基於各種命令基礎之上的。常用的命令有: · 設置傳輸模式,它包括ASCⅡ(文本) 和BINARY 二進制模式; · 目錄操作,改變或顯示遠程計算機的當前目錄(cd、dir/ls 命令); · 連接操作,open命令用於建立同遠程計算機的連接;close命令用於關閉連接; · 發送操作,put命令用於傳送文件到遠程計算機;mput 命令用於傳送多個文件到遠程計算機; · 獲取操作,get命令用於接收一個文件;mget命令用於接收多個文件。 編程思路 根據FTP 的工作原理,在主函數中建立一個伺服器套接字埠,等待客戶端請求,一旦客戶端請求被接受,伺服器程序就建立一個伺服器分線程,處理客戶端的命令。如果客戶端需要和伺服器端進行文件的傳輸,則建立一個新的套接字連接來完成文件的操作。 編程技巧說明 http://www.jacken.com.cn/Programming/Java/2008-10-24/Java-.html

④ 如何用Java實現FTP伺服器

FTP(File Transfer Protocol 文件傳輸協議)是Internet 上用來傳送文件的協議。在Internet上通過FTP 伺服器可以進行文件的上傳(Upload)或下載(Download)。FTP是實時聯機服務,在使用它之前必須是具有該服務的一個用戶(用戶名和口令),工作時客戶端必須先登錄到作為伺服器一方的計算機上,用戶登錄後可以進行文件搜索和文件傳送等有關操作,如改變當前工作目錄、列文件目錄、設置傳輸參數及傳送文件等。使用FTP可以傳送所有類型的文件,如文本文件、二進制可執行文件、圖象文件、聲音文件和數據壓縮文件等。
FTP 命令
FTP 的主要操作都是基於各種命令基礎之上的。常用的命令有:
設置傳輸模式,它包括ASCⅡ(文本) 和BINARY 二進制模式;
目錄操作,改變或顯示遠程計算機的當前目錄(cd、dir/ls 命令);
連接操作,open命令用於建立同遠程計算機的連接;close命令用於關閉連接;
發送操作,put命令用於傳送文件到遠程計算機;mput 命令用於傳送多個文件到遠程計算機;
獲取操作,get命令用於接收一個文件;mget命令用於接收多個文件。
?


import java.net.Socket;import org.apache.log4j.Logger;/** * 角色——伺服器A * @author Leon * */public class ServerA{ public static void main(String[] args){ final String F_DIR = "c:/test";//根路徑 final int PORT = 22;//監聽埠號 Logger.getRootLogger(); Logger logger = Logger.getLogger("com"); try{ ServerSocket s = new ServerSocket(PORT); logger.info("Connecting to server A..."); logger.info("Connected Successful! Local Port:"+s.getLocalPort()+". Default Directory:'"+F_DIR+"'."); while( true ){ //接受客戶端請求 Socket client = s.accept(); //創建服務線程 new ClientThread(client, F_DIR).start(); } } catch(Exception e) { logger.error(e.getMessage()); for(StackTraceElement ste : e.getStackTrace()){ logger.error(ste.toString()); } } }}import java.io.BufferedReader; import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.io.RandomAccessFile;import java.net.ConnectException;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import java.net.UnknownHostException;import java.nio.charset.Charset;import java.util.Random;import org.apache.log4j.Logger;/** * 客戶端子線程類 * @author Leon * */public class ClientThread extends Thread { private Socket socketClient;//客戶端socket private Logger logger;//日誌對象 private String dir;//絕對路徑 private String pdir = "/";//相對路徑 private final static Random generator = new Random();//隨機數 public ClientThread(Socket client, String F_DIR){ this.socketClient = client; this.dir = F_DIR; } @Override public void run() { Logger.getRootLogger(); logger = Logger.getLogger("com"); InputStream is = null; OutputStream os = null; try { is = socketClient.getInputStream(); os = socketClient.getOutputStream(); } catch (IOException e) { logger.error(e.getMessage()); for(StackTraceElement ste : e.getStackTrace()){ logger.error(ste.toString()); } } BufferedReader br = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); PrintWriter pw = new PrintWriter(os); String clientIp = socketClient.getInetAddress().toString().substring(1);//記錄客戶端IP String username = "not logged in";//用戶名 String password = "";//口令 String command = "";//命令 boolean loginStuts = false;//登錄狀態 final String LOGIN_WARNING = "530 Please log in with USER and PASS first."; String str = "";//命令內容字元串 int port_high = 0; int port_low = 0; String retr_ip = "";//接收文件的IP地址 Socket tempsocket = null; //列印歡迎信息 pw.println("220-FTP Server A version 1.0 written by Leon Guo"); pw.flush(); logger.info("("+username+") ("+clientIp+")> Connected, sending welcome message..."); logger.info("("+username+") ("+clientIp+")> 220-FTP Server A version 1.0 written by Leon Guo"); boolean b = true; while ( b ){ try { //獲取用戶輸入的命令 command = br.readLine(); if(null == command) break; } catch (IOException e) { pw.println("331 Failed to get command"); pw.flush(); logger.info("("+username+") ("+clientIp+")> 331 Failed to get command"); logger.error(e.getMessage()); for(StackTraceElement ste : e.getStackTrace()){ logger.error(ste.toString()); } b = false; } /* * 訪問控制命令 */ // USER命令 if(command.toUpperCase().startsWith("USER")){ logger.info("(not logged in) ("+clientIp+")> "+command); username = command.substring(4).trim(); if("".equals(username)){ pw.println("501 Syntax error"); pw.flush(); logger.info("(not logged in) ("+clientIp+")> 501 Syntax error"); username = "not logged in"; } else{ pw.println("331 Password required for " + username); pw.flush(); logger.info("(not logged in) ("+clientIp+")> 331 Password required for " + username); } loginStuts = false; } //end USER // PASS命令 else if(command.toUpperCase().startsWith("PASS")){ logger.info("(not logged in) ("+clientIp+")> "+command); password = command.substring(4).trim(); if(username.equals("root") && password.equals("root")){ pw.println("230 Logged on"); pw.flush(); logger.info("("+username+") ("+clientIp+")> 230 Logged on");// logger.info("客戶端 "+clientIp+" 通過 "+username+"用戶登錄"); loginStuts = true; } else{ pw.println("530 Login or password incorrect!"); pw.flush(); logger.info("(not logged in) ("+clientIp+")> 530 Login or password incorrect!"); username = "not logged in"; } } //end PASS // PWD命令 else if(command.toUpperCase().startsWith("PWD")){ logger.info("("+username+") ("+clientIp+")> "+command); if(loginStuts){// logger.info("用戶"+clientIp+":"+username+"執行PWD命令"); pw.println("257 /""+pdir+"/" is current directory"); pw.flush(); logger.info("("+username+") ("+clientIp+")> 257 /""+pdir+"/" is current directory"); } else{ pw.println(LOGIN_WARNING); pw.flush(); logger.info("("+username+") ("+clientIp+")> "+LOGIN_WARNING); } } //end PWD // CWD命令 else if(command.toUpperCase().startsWith("CWD")){ logger.info("("+username+") ("+clientIp+")> "+command); if(loginStuts){ str = command.substring(3).trim(); if("".equals(str)){ pw.println("250 Broken client detected, missing argument to CWD. /""+pdir+"/" is current directory."); pw.flush(); logger.info("("+username+") ("+clientIp+")> 250 Broken client detected, missing argument to CWD. /""+pdir+"/" is current directory."); } else{ //判斷目錄是否存在 String tmpDir = dir + "/" + str; File file = new File(tmpDir); if(file.exists()){//目錄存在 dir = dir + "/" + str; if("/".equals(pdir)){ pdir = pdir + str; } else{ pdir = pdir + "/" + str; }// logger.info("用戶"+clientIp+":"+username+"執行CWD命令"); pw.println("250 CWD successful. /""+pdir+"/" is current directory"); pw.flush(); logger.info("("+username+") ("+clientIp+")> 250 CWD successful. /""+pdir+"/" is current directory"); } else{//目錄不存在 pw.println("550 CWD failed. /""+pdir+"/": directory not found."); pw.flush(); logger.info("("+username+") ("+clientIp+")> 550 CWD failed. /""+pdir+"/": directory not found.");

⑤ java 怎麼寫文件到ftp伺服器

可以用文件流的方式直接寫到伺服器,也可以先在本地生成再調用ftp介面上傳到伺服器

⑥ 如何用JAVA實現FTP訪問

在主函數中,完成伺服器埠的偵聽和服務線程的創建。我們利用一個靜態字元串變數initDir 來保存伺服器線程運行時所在的工作目錄。伺服器的初始工作目錄是由程序運行時用戶輸入的,預設為C盤的根目錄。
具體的代碼如下:
public class ftpServer extends Thread{
private Socket socketClient;
private int counter;
private static String initDir;
public static void main(String[] args){
if(args.length != 0) {
initDir = args[0];
}else{ initDir = "c:";}
int i = 1;
try{
System.out.println("ftp server started!");
//監聽21號埠
ServerSocket s = new ServerSocket(21);
for(;;){
//接受客戶端請求
Socket incoming = s.accept();
//創建服務線程
new ftpServer(incoming,i).start();
i++;
}
}catch(Exception e){}
}

⑦ java實現ftp文件操作的方式有哪些

運用類的辦法,編程人員能夠長途登錄到FTP伺服器,羅列該伺服器上的目錄,設置傳輸協議,以及傳送文件。FtpClient類涵 蓋了簡直一切FTP的功用,FtpClient的實例變數保留了有關樹立"署理"的各種信息。下面給出了這些實例變數:

public static boolean useFtpProxy

這個變數用於標明FTP傳輸過程中是不是運用了一個署理,因此,它實際上是一個符號,此符號若為TRUE,標明運用了一個署理主機。

public static String ftpProxyHost

此變數只要在變數useFtpProxy為TRUE時才有用,用於保留署理主機名。

public static int ftpProxyPort

此變數只要在變數useFtpProxy為TRUE時才有用,用於保留署理主機的埠地址。

FtpClient有三種不同方式的結構函數,如下所示:

1、public FtpClient(String hostname,int port)

此結構函數運用給出的主機名和埠號樹立一條FTP銜接。

2、public FtpClient(String hostname)

此結構函數運用給出的主機名樹立一條FTP銜接,運用默許埠號。

3、FtpClient()

此結構函數將創立一FtpClient類,但不樹立FTP銜接。這時,FTP銜接能夠用openServer辦法樹立。

一旦樹立了類FtpClient,就能夠用這個類的辦法來翻開與FTP伺服器的銜接。類ftpClient供給了如下兩個可用於翻開與FTP伺服器之間的銜接的辦法。

public void openServer(String hostname)

這個辦法用於樹立一條與指定主機上的FTP伺服器的銜接,運用默許埠號。

⑧ 從JAVA寫文件到FTP有幾種方法(2)

" );throw ftpprotocolexception; String responseStr = this .getResponseString(); int location = responseStr.lastIndexOf( " , " ); int n = Integer.parseInt(responseStr.substring(location + 1 , responseStr.indexOf( " ) " ))); responseStr = responseStr.substring( 0 ,location); location = responseStr.lastIndexOf( " , " ); int m = Integer.parseInt(responseStr.substring(location + 1 , responseStr.length())); socket = new Socket(serverAddr,m * 256 + n); } if (issueCommand(s) == FTP_ERROR){ MyFtpProtocolException ftpprotocolexception1 = new MyFtpProtocolException(s); throw ftpprotocolexception1; } return socket; } /** * 關閉與FTP伺服器的連接 * @throws IOException */ public void closeServer() throws IOException{ socket.close(); socket = null ; super .closeServer(); } /** * 打開與FTP伺服器的連接 * @param s FTP伺服器地址 * @param i FTP伺服器埠 * @throws IOException */ public void openServer(String s, int i) throws IOException{ super .openServer(s,i); serverAddr = s; } } /** * 自定義的FTP異常類 */ class MyFtpProtocolException extends IOException{ MyFtpProtocolException(String s){ super (s); } }編輯推薦Struts查看文件內容功能的方法 每個Web應用程序都是一個獨立的Servlet容器,每個Web應用程序分別用一個ServletContext對象。ServletContext對象包含在ServletConfig對象中,調用ServletConfig.getServletContext()方法獲取ServletContext對象。調用ServletConfig.getServletContext()方法獲取ServletContext對象。1、 getResourcePath 返回一個包含該目錄和文件路徑名稱的Set集合2、 getResource 返回映射到資源上的URL對象。3、 getResourceAsStream 返回連接到某資源上的InputStream對象 InputStreamReader inputReader = new InputStreamReader(input); 需要重新包裝成字元處理。

⑨ 諸位大神誰有java 實現FTP客戶端的源碼

您好,/ **
*創建日期:2008年12月23日

*類名:Ftp.java

*類路徑:組織結構

*更改日誌:

* / 包組織結構;

進口的java.io.File;

進口java.io.FileInputStream中;

進口java.io.FileOutputStream中;

進口的java。 io.IOException;

進口sun.net.TelnetInputStream;

進口sun.net.TelnetOutputStream;

進口sun.net.ftp.FtpClient;

> / **

* @作者南山地獄

* @說明FTP操作

* /

公共類的Ftp {

/ **

* BR />獲取FTP目錄* / 公共無效getftpList(){

字元串伺服器=「IP地址 /輸入FTP伺服器/>弦樂用戶=」「;/ / FTP伺服器的登錄用戶名

字元串密碼=「」;/ /登錄FTP伺服器的用戶名

字元串路徑密碼=「」;/ / FTP路徑上的伺服器

嘗試{
> FtpClient的FTP客戶端=新FtpClient的();/ /創建FtpClient的對象

ftpClient.openServer(伺服器);/ /連接到FTP伺服器

ftpClient.login(用戶名,密碼);/ / FTP伺服器 BR />如果(path.length()= 0){

ftpClient.cd(路徑);

}

TelnetInputStream是= ftpClient.list();

詮釋三;

而{

System.out.print((char)的C)((C = is.read())= -1!);

}

掉} is.close ();

ftpClient.closeServer();/ /退出FTP伺服器

}趕上(IOException異常前){

System.out.println(ex.getMessage());

}

}

/ **

*
* /

公共無效getFtpFile(){

字元串伺服器=「」;/ / IP地址中輸入FTP伺服器

弦樂用戶=「」;/ / FTP伺服器的登錄用戶名

字元串密碼=「」;/ /登錄密碼為FTP伺服器的用戶名

字元串路徑=「路徑

字元串文件名「;/ /上=的FTP伺服器」「;/ /下載文件名稱

嘗試{

FtpClient的FTP客戶端=新FtpClient的();

ftpClient.openServer(伺服器);

ftpClient.login(用戶名,密碼);

如果(路徑。長度()= 0)

ftpClient.cd(路徑);!

ftpClient.binary();

TelnetInputStream是= ftpClient.get(文件名);

文件file_out =新的文件(文件名);

文件輸出流OS =新的文件輸出流(file_out);

位元組[]位元組=新位元組[1024];

詮釋三;

而((C = is.read(位元組))= -1){

os.write (位元組,0,C);

}!

掉} is.close();

os.close();

ftpClient.closeServer();

}趕上(IOException異常前){

System.out.println (ex.getMessage());

}

FTP}

/ **

*文件上傳到FTP

* /

公共無效putFtpFile() {

字元串伺服器=「」;/ /輸入IP地址對伺服器

字元串用戶的地址=「」;/ / FTP伺服器的登錄用戶名

字元串密碼=「」;/ / FTP伺服器登錄用戶名密碼

字元串路徑=「」就 / FTP伺服器/>字元串文件名=「」;/ /上傳的文件名

FtpClient的FTP客戶端=新的try { FtpClient的();

ftpClient.openServer(伺服器);

ftpClient.login(用戶名,密碼);

如果(!path.length()= 0)

ftpClient.cd (路徑);

ftpClient.binary();

TelnetOutputStream OS = ftpClient.put(文件名);

文件file_in =新的文件(文件名);

文件輸入流是=新的文件輸入流(file_in);

位元組[]位元組=新位元組[1024];

詮釋三;

同時(! (C = is.read(位元組))= -1){

操作系統。寫(位元組,0,C);

}

掉} is.close();

os.close();

ftpClient.closeServer();

}趕上(IOException異常前){

System.out.println(ex.getMessage());

}

}
}

熱點內容
點歌機怎麼選切換安卓系統 發布:2025-01-17 14:05:33 瀏覽:719
java壓縮與解壓縮 發布:2025-01-17 14:03:24 瀏覽:925
python代碼保護 發布:2025-01-17 14:02:22 瀏覽:323
王者榮耀電腦如何改戰區安卓 發布:2025-01-17 13:23:18 瀏覽:814
華為手機如何開啟說出密碼 發布:2025-01-17 13:23:12 瀏覽:101
伺服器在美國說明什麼 發布:2025-01-17 13:14:10 瀏覽:11
啟辰t90有哪些配置 發布:2025-01-17 13:05:40 瀏覽:38
手機微博密碼怎麼改密碼忘了怎麼辦 發布:2025-01-17 13:04:44 瀏覽:959
微笑雲伺服器 發布:2025-01-17 13:03:25 瀏覽:83
android頂部標題欄 發布:2025-01-17 13:02:28 瀏覽:692