سوالاتی در مورد پروژه دانلودر
سلام.من بعضی از قسمت های پروژه دانلودر رو متوجه نمیشم.اگر کسی میتونه لطفا این ها رو یه توضیحی بدi
InputStream inputStream = connection.getInputStream();
byte[] buffer = new byte[G.DOWNLOAD_BUFFER_SIZE];
int len = 0;
int downloadedSize = 0;
while ((len = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, len);
downloadedSize += len;
}
اول اینکه چرا از آرایه بایت اینجا استفاده شده.و دقیقا چیکار میکنه.
دوم اینکه عددی که داخل آرایه بایت نوشته شده،چه معنی رو میده.مثلا تو پروژه استاد نوشته شده 8*1024.
سوم اینکه متد های read،write چیکار میکنن؟و چرا داخل متد read آرایه buffer رو نوشته.
و در آخر اینکه مقدار inputStream.read چگونه تغییر میکنه که تو شرط هست تا زمانی که بیشتر از صفر بود ادامه بده.؟
ممنون میشم یه توضیحی بدید.
بایت که اینجا همون هشت بیته که ۱۰ × ۱۰۲۴ یعنی این آرایه می تونه ۱۰۲۴۰ بایت از فایلی که می خواید دانلود کنید رو توی خودش ذخیره کنه.
inputStream.read(buffer) میاد از یوآرالی که بهش دادید (فایلی که قراره دانلود بشه) به اندازه ی buffer (بایت ۱۰۲۴۰) می خونه و داخل همون بافر میریزه. متد write هم میاد اون مقدار بافری که خونده شده رو توی یه فایلی میریزه.
مقدار inputStream.read به صورت اتوماتیک عوض میشه یعنی اون مقداری که خونده شده دوباره خونده نمیشه و میره بعدی. وقتی هم که کل فایل رو خوند خروجی inputStram.read صفر میشه که در این صورت کار تمونه و از حلقه بیرون میاد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .