آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ریختن []byte در outputStream

PandaStudio  12 سال پیش  12 سال پیش
0 0

سلام دوستان

چطور میشه یک []byte خیـــلی حجیـــــــــــــم را درون یک outputStream نوشت؟

خود outputStream یک متد داره به اسم ()write که پارامتر ورودی []byte میگیره اما نمویدونم آیا این کار برای فایل های خیلی سنگین گزینه مناسبیه یا نه لطفا راهنماییم کنید.

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
محمد حسین زاده  12 سال پیش
+1 0

با فرض خوندن از یه inputStream به نام bufferedInputStream و نوشتن روی فایل از کد زیر میتونی استفاده کنی :

BufferedOutputStream bufferedOutputStream = null;
try {
bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(file), 8192);
byte[] buffer = new byte[1024];

int len = 0;

while((len = bufferedInputStream.read(buffer)) != -1) {
bufferedOutputStream.write(buffer, 0, len);
}
} catch (Exception e) {
//cache error
} finally {
try { bufferedInputStream.close(); } catch (Exception e) { }
try { bufferedOutputStream.close(); } catch (Exception e) { }
}
0 0
تفاوت inputStream و bufferedInputStream در چیه؟ (12 سال پیش)
0 0
inputstream کلاس abstract پایه هستش و bufferedInputStream از اون مشتق میشه با امکاناتی مثل buffer کردن ورودی - ریست و طبعا بخاطر بافرینگ و درگیری طولانی مدتِ کمتر از inputsream پایه سریعتر هستش (12 سال پیش)
0 0
اون عدد 8*1024 هم که تو ورودی سازنده میبینی برای تعیین حجم بافر هستش (12 سال پیش)
0 0
ممنون, حالا اگه inputStream درکار نباشه و من فقط یک []byte حجیم داشته باشم و بخوام توی outputStream بریزمش اون را باید چکار کنم؟ (12 سال پیش)
0 0
بهر حال این آرایه از یه جایی اومده و اگه حجیم هست بخش اول کار رو با ریسک انجام دادی. اگه دقت کرده باشی هم موقع خوندن بافر کردیم هم موقع نوشتن (12 سال پیش)
0 0
بله از inputstream اومده اما ادیت شده و متفاوت با اونی هست که از inputstream گرفتیم برای همین حلقه while را باید یه مدل دیگه نوشت به نظرتون چطور عمل کنم؟ (12 سال پیش)
0 0
معمولا این تلاشها برای زمانیه که سخت افزار ضعیف مد نظره و توان IO کم. اگه سخت افزار توان خوندن و پردازش رو داشته بعید بنظر میرسه توان نوشتن رو نداشته باشه. یعنی یا تو مرحله اول فریز کرده یا با همون OutputStream معمولی هم کارشو انجام میده (تست نشده) (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .