Bu eğiticide, örnekler yardımıyla Java ByteArrayOutputStream ve yöntemlerini öğreneceğiz.
ByteArrayOutputStream
Sınıf java.io
paketi (bayt), çıkış veri dizisini yazmak için kullanılabilir.
OutputStream
Soyut sınıfı genişletir .
Not : In ByteArrayOutputStream
, verileri depolamak için dahili bir bayt dizisi tutar.
ByteArrayOutputStream oluşturma
Bir bayt dizisi çıktı akışı yaratmak için önce java.io.ByteArrayOutputStream
paketi içe aktarmalıyız . Paketi içe aktardıktan sonra, işte nasıl bir çıktı akışı oluşturabiliriz.
// Creates a ByteArrayOutputStream with default size ByteArrayOutputStream out = new ByteArrayOutputStream();
Burada, varsayılan boyutu 32 bayt olan bir bayt dizisine veri yazacak bir çıktı akışı oluşturduk. Ancak dizinin varsayılan boyutunu değiştirebiliriz.
// Creating a ByteArrayOutputStream with specified size ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
Burada boyut, dizinin uzunluğunu belirtir.
ByteArrayOutputStream Yöntemleri
ByteArrayOutputStream
Sınıf içinde mevcut farklı yöntemlerin uygulanmasını içerir OutputStream
sınıfı.
write () Yöntem
write(int byte)
- belirtilen baytı çıktı akışına yazarwrite(byte() array)
- belirtilen dizideki baytları çıktı akışına yazarwrite(byte() arr, int start, int length)
- Konum başlangıcından başlayarak bir diziden çıkış akışına uzunluğa eşit bayt sayısını yazarwriteTo(ByteArrayOutputStream out1)
- geçerli çıktı akışının tüm verilerini belirtilen çıktı akışına yazar
Örnek: Veri yazmak için ByteArrayOutputStream
import java.io.ByteArrayOutputStream; class Main ( public static void main(String() args) ( String data = "This is a line of text inside the string."; try ( // Creates an output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); byte() array = data.getBytes(); // Writes data to the output stream out.write(array); // Retrieves data from the output stream in string format String streamData = out.toString(); System.out.println("Output stream: " + streamData); out.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Çıktı
Çıktı akışı: Bu, dizenin içindeki bir metin satırıdır.
Yukarıdaki örnekte, output adında bir bayt dizisi çıktı akışı oluşturduk.
ByteArrayOutputStream output = new ByteArrayOutputStream();
Verileri çıktı akışına yazmak için write()
yöntemi kullandık .
Not : Programda getBytes()
kullanılan yöntem bir dizgeyi bayt dizisine dönüştürür.
ByteArrayOutputStream'den Verilere Erişim
toByteArray()
- çıktı akışı içinde bulunan diziyi döndürürtoString()
- çıktı akışının tüm verilerini dize biçiminde döndürür
Örneğin,
import java.io.ByteArrayOutputStream; class Main ( public static void main(String() args) ( String data = "This is data."; try ( // Creates an output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); // Writes data to the output stream out.write(data.getBytes()); // Returns an array of bytes byte() byteData = out.toByteArray(); System.out.print("Data using toByteArray(): "); for(int i=0; i
Output
Data using toByteArray(): This is data. Data using toString(): This is data.
In the above example, we have created an array of bytes to store the data returned by the
toByteArray()
method.
We then have used the for loop to access each byte from the array. Here, each byte is converted into the corresponding character using typecasting.
close() Method
To close the output stream, we can use the
close()
method.
However, the
close()
method has no effect in ByteArrayOutputStream
class. We can use the methods of this class even after the close()
method is called.
Other Methods of ByteArrayOutputStream
Yöntemler | Açıklamalar |
---|---|
size() | çıktı akışındaki dizinin boyutunu döndürür |
flush() | çıktı akışını temizler |
To learn more, visit Java ByteArrayOutputStream (official Java documentation).