ใช้เครื่องมือ Apache FTP เพื่ออัปโหลดดาวน์โหลดและลบไฟล์ดังนี้
1. ดาวน์โหลดแพ็คเกจ Jar ที่เกี่ยวข้อง
Commons-Net -1.4.1.jar
2. รหัสการใช้งานมีดังนี้:
คลาสสาธารณะ FTPUTILS {// ที่อยู่เซิร์ฟเวอร์ FTP ที่อยู่สตริงสาธารณะชื่อโฮสต์ = "192.168.1.249"; // หมายเลขพอร์ตเซิร์ฟเวอร์ FTP เริ่มต้นเป็น 21 พอร์ตจำนวนเต็มสาธารณะ = 21; // ftp บัญชีล็อกอินสตริงสาธารณะชื่อผู้ใช้ชื่อ = "root"; // รหัสผ่านเข้าสู่ระบบ FTP รหัสผ่านสตริงสาธารณะ = "123"; ftpClient สาธารณะ ftpClient = null; / *** เริ่มต้นเซิร์ฟเวอร์ ftp*/ โมฆะสาธารณะ initftpClient () {ftpClient = new ftpClient (); ftpClient.setControlencoding ("UTF-8"); ลอง {system.out.println ("การเชื่อมต่อ ... เซิร์ฟเวอร์ ftp:"+this.hostname+":"+this.port); ftpclient.connect (ชื่อโฮสต์, พอร์ต); // เชื่อมต่อ FTP Server ftpClient.login (ชื่อผู้ใช้, รหัสผ่าน); // เข้าสู่ระบบไปยังเซิร์ฟเวอร์ FTP int ReplyCode = ftpClient.getReplyCode (); // ไม่ว่าเซิร์ฟเวอร์จะเข้าสู่ระบบได้สำเร็จถ้า (! ftpreply.ispositiveCompletion (ReplyCode)) {system.out.println ("เชื่อมต่อล้มเหลว ... เซิร์ฟเวอร์ ftp:"+this.hostname+":"+this.port); } system.out.println ("เชื่อมต่อ SuccessFu ... เซิร์ฟเวอร์ ftp:"+this.hostname+":"+this.port); } catch (malformedurlexception e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); }} / *** อัปโหลดไฟล์* @param pathname ftp บริการบันทึกที่อยู่* @param filename ชื่อไฟล์ที่อัปโหลดไปยัง ftp* @param Originfilename ชื่อของไฟล์ที่จะอัปโหลด (ที่อยู่สัมบูรณ์)** @return* / public boolean uploadfile inputStream inputStream = null; ลอง {system.out.println ("เริ่มอัปโหลดไฟล์"); inputStream = new FileInputStream (ไฟล์ใหม่ (OriginFileName)); initftpClient (); ftpClient.setFileType (ftpClient.binary_file_type); CreateDireCroty (ชื่อพา ธ ); ftpclient.makedirectory (ชื่อพา ธ ); ftpclient.changeworkingDirectory (ชื่อพา ธ ); ftpclient.storefile (ชื่อไฟล์, อินพุตสตรีม); inputstream.close (); ftpclient.logout (); ธง = จริง; System.out.println ("อัปโหลดไฟล์สำเร็จ"); } catch (exception e) {system.out.println ("อัปโหลดไฟล์ล้มเหลว"); E.PrintStackTrace (); } ในที่สุด {if (ftpClient.isconnected ()) {ลอง {ftpClient.disconnect (); } catch (ioexception e) {e.printstacktrace (); }} if (null! = inputStream) {ลอง {inputStream.close (); } catch (ioexception e) {e.printstacktrace (); }}} ส่งคืนจริง; } / *** อัปโหลดไฟล์* @param pathName ftp บริการบันทึกที่อยู่* @param ชื่อไฟล์ชื่อไฟล์ที่อัปโหลดไปยัง ftp* @param inputstream ไฟล์สตรีมการสตรีม* @return* / public boolean uploadfile (สตริง pathname ลอง {system.out.println ("เริ่มอัปโหลดไฟล์"); initftpClient (); ftpClient.setFileType (ftpClient.binary_file_type); CreateDireCroty (ชื่อพา ธ ); ftpclient.makedirectory (ชื่อพา ธ ); ftpclient.changeworkingDirectory (ชื่อพา ธ ); ftpclient.storefile (ชื่อไฟล์, อินพุตสตรีม); inputstream.close (); ftpclient.logout (); ธง = จริง; System.out.println ("อัปโหลดไฟล์สำเร็จ"); } catch (exception e) {system.out.println ("อัปโหลดไฟล์ล้มเหลว"); E.PrintStackTrace (); } ในที่สุด {if (ftpClient.isconnected ()) {ลอง {ftpClient.disconnect (); } catch (ioexception e) {e.printstacktrace (); }} if (null! = inputStream) {ลอง {inputStream.close (); } catch (ioexception e) {e.printstacktrace (); }} ส่งคืนจริง; } // เปลี่ยนเส้นทางไดเรกทอรี Public Boolean ChangeWorkingDirectory (ไดเรกทอรีสตริง) {ธงบูลีน = จริง; ลอง {flag = ftpClient.changeWorkingDirectory (ไดเรกทอรี); if (Flag) {System.out.println ("Enter Folder" + Directory + "Success!"); } else {system.out.println ("ป้อนโฟลเดอร์" + ไดเรกทอรี + "ล้มเหลว! เริ่มสร้างโฟลเดอร์"); }} catch (ioexception ioe) {ioe.printstacktrace (); } return flag; } // สร้างไฟล์ไดเรกทอรีหลายชั้น หากมีเซิร์ฟเวอร์ FTP จะไม่ถูกสร้างขึ้น หากไม่มีให้สร้างบูลีนสาธารณะที่สร้างขึ้นมารีครอตี้ (ระยะไกลสตริง) โยน ioexception {Boolean Success = true; String directory = remote + "/"; // หากไม่ได้มีไดเรกทอรีระยะไกลให้สร้างไดเรกทอรีเซิร์ฟเวอร์ระยะไกลซ้ำซากถ้า (! directory.equalsignorecase ("/") &&! ChangeWorkingDirectory (สตริงใหม่ (ไดเรกทอรี))) {int start = 0; int end = 0; if (directory.startswith ("/")) {start = 1; } else {start = 0; } end = directory.indexof ("/", เริ่มต้น); String path = ""; String Paths = ""; ในขณะที่ (จริง) {String Subdirectory = สตริงใหม่ (remote.substring (เริ่มต้น, สิ้นสุด) .getBytes ("GBK"), "ISO-8859-1"); path = path + "/" + ไดเรกทอรีย่อย; if (! existfile (path)) {ถ้า (makedirectory (ไดเรกทอรีย่อย)) {ChangeWorkingDirectory (ไดเรกทอรีย่อย); } else {system.out.println ("สร้างไดเรกทอรี [" + ไดเรกทอรีย่อย + "] ล้มเหลว"); ChangeWorkingDirectory (ไดเรกทอรีย่อย); }} else {ChangeWorkingDirectory (ไดเรกทอรีย่อย); } paths = paths + "/" + ไดเรกทอรีย่อย; start = end + 1; end = directory.indexof ("/" เริ่มต้น); // ตรวจสอบว่าไดเรกทอรีทั้งหมดถูกสร้างขึ้นหรือไม่ถ้า (สิ้นสุด <= เริ่มต้น) {break; }}} ส่งคืนความสำเร็จ; } // ตรวจสอบว่าไฟล์เซิร์ฟเวอร์ FTP มีอยู่ในบูลีนสาธารณะมีอยู่ไฟล์ (เส้นทางสตริง) พ่น IOException {ธงบูลีน = false; ftpfile [] ftpfilearr = ftpclient.listfiles (เส้นทาง); if (ftpfilearr.length> 0) {flag = true; } return flag; } // สร้างไดเรกทอรี public Boolean makedirectory (String dir) {boolean flag = true; ลอง {flag = ftpClient.makedirectory (dir); if (flag) {system.out.println ("สร้างโฟลเดอร์" + dir + "ความสำเร็จ!"); } else {system.out.println ("สร้างโฟลเดอร์" + dir + "ล้มเหลว!"); }} catch (exception e) {e.printstacktrace (); } return flag; } / ** * ดาวน์โหลดไฟล์ * * @param pathName ftp เซิร์ฟเวอร์ไดเรกทอรีไฟล์ไฟล์ * * @param ชื่อไฟล์ชื่อไฟล์ * * @param เส้นทางไฟล์ localpath หลังจากดาวน์โหลด * * @return * / Public Boolean ดาวน์โหลดไฟล์ OutputStream OS = NULL; ลอง {system.out.println ("เริ่มดาวน์โหลดไฟล์"); initftpClient (); // สลับไดเรกทอรี FTP ftpClient.changeWorkingDirectory (ชื่อพา ธ ); ftpfile [] ftpfiles = ftpClient.listfiles (); สำหรับ (ftpfile file: ftpfiles) {if (filename.equalsignorecase (file.getName ())) {ไฟล์ localfile = ไฟล์ใหม่ (localPath + "/" + file.getName ()); OS = ใหม่ fileOutputStream (localFile); ftpClient.RetrieveFile (file.getName (), OS); os.close (); }} ftpClient.logout (); ธง = จริง; System.out.println ("ดาวน์โหลดไฟล์สำเร็จ"); } catch (exception e) {system.out.println ("ไฟล์ดาวน์โหลดล้มเหลว"); E.PrintStackTrace (); } ในที่สุด {if (ftpClient.isconnected ()) {ลอง {ftpClient.disconnect (); } catch (ioexception e) {e.printstacktrace (); }} if (null! = os) {ลอง {os.close (); } catch (ioexception e) {e.printstacktrace (); }}} return flag; } / ** * ลบไฟล์ * * @param pathName ftp เซิร์ฟเวอร์บันทึกไดเรกทอรี * * @param filename ชื่อไฟล์ที่จะถูกลบ * * @return * / บูลีนสาธารณะ deleetefile (ชื่อพา ธ สตริง ลอง {system.out.println ("เริ่มลบไฟล์"); initftpClient (); // สลับไดเรกทอรี FTP ftpClient.changeWorkingDirectory (ชื่อพา ธ ); ftpclient.dele (ชื่อไฟล์); ftpclient.logout (); ธง = จริง; System.out.println ("ลบไฟล์สำเร็จ"); } catch (exception e) {system.out.println ("ลบไฟล์ล้มเหลว"); E.PrintStackTrace (); } ในที่สุด {if (ftpClient.isconnected ()) {ลอง {ftpClient.disconnect (); } catch (ioexception e) {e.printstacktrace (); }} return flag; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {ftputils ftp = new ftputils (); //ftp.uploadfile("ftpfile/data "," 123.docx "," e: //123.docx "); //ftp.downloadfile("ftpfile/data "," 123.docx "," f: // "); ftp.deletefile ("ftpfile/data", "123.docx"); System.out.println ("ตกลง"); - ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น