< pre class = "prettyprint lang-java" >import java.io.BufferedOutputStream ؛
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream ؛
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
من الفئة العامة FTPDownloadFile {
الفراغ العام الثابت الرئيسي (سلسلة [] args) {
Server String = "ServerAddress" ؛
int port = 21 ؛
اسم مستخدم السلسلة = "YourUserName" ؛
كلمة مرور السلسلة = "كلمة المرور الخاصة بك" ؛
FTPClient ftpClient = FTPClient الجديد () ؛
جرب {
ftpClient.connect (الخادم ، المنفذ) ؛
ftpClient.login (اسم المستخدم وكلمة المرور) ؛
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP. BINARY_FILE_TYPE) ؛
// النهج 1: تحميل ملف باستخدام ملف InputStream
File = ملف جديد ("المكونات الإضافية و styles.txt") ؛
اسم ملف السلسلة = "الإضافات و styles.txt" ؛
InputStream inputStream = جديد FileInputStream (ملف) ؛
System.out.println ("بدء التنزيل");
//download result
الدقة المنطقية = ftpClient.storeFile (اسم الملف ، inputStream) ؛
// إغلاق دفق التشغيل
inputStream.close () ؛
if (res==true) {
System.out.println ("الملف "+FileName+
" تم تنزيله بنجاح");
}
// النهج 2: تحميل ملف باستخدام OutputStream
String FileName2 = "Track 2.mp3" ؛
سلسلة RemoteFilePath = "/songs/"+FileName2;
ملف filelocal = ملف جديد ("C: / Track 2.mp3") ؛
// سرد المجلد الذي يوجد به الملف و
// ثم ابحث عنه بالاسم للحصول على
// حجمه الذي سيتم استخدامه لحساب
// نسبة التنزيل
FTPFile[] files1 = ftpClient.listFiles ("/ songs") ؛
الحجم الطويل = 0 ؛
for(int i = 0; أنا< الملفات 1.الطول; i++){
if(files1[i].getName().equals(FileName2))
//get file size
size = files1[i].getSize();
}
OutputStream outputStream2 = جديد BufferedOutputStream (
جديد FileOutputStream (ملف محلي)) ؛
InputStream inputStream2 = ftpClient.retrieveFileStream (
RemoteFilePath) ؛
بايت [] bytesArray = بايت جديد [4096] ؛
int bytesRead = -1;
// طالما أننا لم نصل إلى النهاية < br / > int المنقولة = 0 ؛
int في المئة = 0 ؛
بينما ((bytesRead = inputStream2.read (bytesArray)) != -1) {
// bytes تتم كتابتها إلى الموقع المحدد
outputStream2.write (bytesArray، 0، bytesRead);
إعادة توجيه += بايت قراءة ؛
بالمائة = (int) (منقول * 100 / حجم) ؛
System.out.println(النسبة المئوية+"٪");
}
// إغلاق تدفقات قراءة الكتابة
inputStream2.close ();
outputStream2.close ();
// br //
الدقة = ftpClient.completePendingCommand();
إذا (res) {
System.out.println ("تم تنزيل الملف "+FileName2+
" بنجاح");
}
} catch (IOException e) {
System.out.println(e.getMessage());
e.printStackTrace ();
} أخيرا {
جرب {
if (ftpClient.isConnected()) {
//close FTP
ftpClient.logout();
ftpClient.disconnect();
}
} الصيد (IOException ex) {
ex.printStackTrace ();
}
}
}
}
يشير تنفيذ هذا الرمز إلى نجاح التنزيل:
بدء التنزيل
تم تنزيل المكونات الإضافية والملف styles.txt بنجاح
بدء التنزيل
1٪
2٪
3٪
.
.
98٪
99٪
99٪
100٪
2.mp3 تم تنزيل ملف المسار بنجاح
< / pre>< / div>