کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Java – کار با کلاس در ByteArrayOutputStream Java

آموزش Java – کار با کلاس در ByteArrayOutputStream Java

کلاس ByteArrayOutputStream در جاوا برای درج داده های مشترک در چند فایل بکار می رود. output stream ای که این کلاس پیاده سازی می کند، داده ها را داخل آرایه ای از بایت ها (byte stream) قرار داده و سپس می تواند این داده ها را در چندین stream، برای مثال فایل خروجی، به صورت ثابت درج کند. داده های خروجی با فراخوانی متدهایtoByteArray() و toString() قابل بازیابی می باشند. buffer و حافظه ی واسطی که برای ذخیره موقت داده ها ایجاد شده، با درج داده های بیشتر به صورت خودکار و متناسب با حجم داده ها بزرگ می شود.

لازم به ذکر است که کلاس ByteArrayOutputStream یک کپی از داده ها نگه داشته و بعد آن ها را به چندین منبع خروجی (output stream) ارسال می کند.

دستور تعریف کلاس ByteArrayOutputStream در Java

نحوه ی تعریف کلاس Java.io.ByteArrayOutputStream به شرح زیر می باشد:

public class ByteArrayOutputStream extends OutputStream  

توابع سازنده (constructor) کلاس ByteArrayOutputStream

No.
(تابع سازنده) Constructor
شرح
1
ByteArrayOutputStream()
این تابع سازنده یک جریان خروجی در قالب آرایه بایتی (byte array output stream) با ظرفیت اولیه ی 32 بایت ایجاد می کند که این ظرفیت در صورت لزوم افزایش می یابد (buffer با دریافت اطلاعات اضافه بر ظرفیت خود، به صورت خودکار بزرگ می شود).
2
ByteArrayOutputStream(int size)
این تابع سازنده یک جریان خروجی در قالب آرایه بایتی (byte array output stream) با buffer ای که قابلیت نگهداری تعداد مشخصی بایت را دارد (مقدار پارامتر int size)، ایجاد می نماید.

متدهای کلاس ByteArrayOutputStream

No.
متد
شرح
1
int size()
ظرفیت یا حجم فعلی حافظه ی buffer را در قالب عدد صحیح برمی گرداند.
2
byte[] toByteArray()
یک آرایه ی بایتی جدید ایجاد می کند.
3
String toString()
این متد برای تبدیل محتوا buffer به رشته بکار رفته و بایت ها را بر اساس مجموعه کاراکتر پیش فرض بستر اجرای مورد نظر (platform character set) رمزگشایی و به کاراکتر تبدیل می کند.
4
String toString(String charsetName)
این تابع محتوای حافظه ی buffer را بر اساس مقدار پارامتر charsetName از بایت به کاراکتر تبدیل می کند.
5
void write(int b)
این تابع بایت ارسال شده به عنوان آرگومان را در آرایه ی بایتی خروجی (byte array output stream) درج می کند.
6
void write(byte[] b, int off, int len
این تابع به تعداد معینی بایت (بر اساس مقدار پارامتر len که می تواند طول آرایه باشد) از نقطه ی مشخص شده (بر اساس مقدار پارامتر off) در آرایه ی ورودی خوانده و بایت های خوانده شده را در آرایه ی بایتی خروجی درج (byte array output stream) می کند.
7
void writeTo(OutputStream out)
این متد محتوای کامل output stream که آرایه ای از بایت هاست را در منبع خروجی (output stream) مشخص شده به عنوان آرگومان (OutputStream out) درج می کند.
8
void reset()
این متد فیلد count این output stream که آرایه ای از بایت ها است را به مقدار 0 برگردانده و تمامی خروجی جمع آوری شده در output stream را بیرون می ریزد. output stream کنونی مجددا قابل استفاده بوده و جهت ذخیره ی موقت داده های خروجی از حافظه ی buffer که قبلا تخصیص یافته استفاده می کند.
9
void close()
فراخوانی تابع close() بر روی ByteArrayOutputStream هیچ تاثیری ندارد چرا که پس از بستن stream، متدهای این کلاس بدون رخداد خطای IOException همچنان قابل فراخوانی می باشند.

مثال کاربردی از ByteArrayOutputStream در Java

در زیر مثالی را مشاهده می کنید که طی آن کلاس ByteArrayOutputStream داده را در دو فایل f1.txt و f2.txt درج می کند.

package com.javatpoint;  
import java.io.*;  
public class DataStreamExample {  
public static void main(String args[])throws Exception{    
FileOutputStream fout1=new FileOutputStream("D:\\f1.txt");    
FileOutputStream fout2=new FileOutputStream("D:\\f2.txt");    
ByteArrayOutputStream bout=new ByteArrayOutputStream();    
bout.write(65);    
bout.writeTo(fout1);    
bout.writeTo(fout2);    
bout.flush();    
bout.close();//has no effect    
System.out.println("Success...");    
}    
}   

خروجی:

Success...

f1.txt:

A

f2.txt:

A
آموزش Java
1396/08/22 3058 1523
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...