InputStream'i Bayt Dizisine Dönüştüren Java Programı

Bu örnekte, Java'da bir girdi akışını bayt dizisine dönüştürmeyi öğreneceğiz.

Bu örneği anlamak için, aşağıdaki Java programlama konuları hakkında bilgi sahibi olmalısınız:

  • Java InputStream Sınıfı
  • Java ByteArrayInputStream Sınıfı
  • Java ByteArrayOutputStream Sınıfı

Örnek 1: InputStream'i Bayt Dizisine Dönüştüren Java Programı

 import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // convert the input stream to byte array byte() array = stream.readAllBytes(); System.out.println("Byte Array: " + Arrays.toString(array)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Çıktı

 Giriş Akışı: java.io.ByteArrayInputStream@27082746 Bayt Dizisi: (1, 2, 3, 4)

Yukarıdaki örnekte, stream adında bir girdi akışı oluşturduk. Çizgiye dikkat edin,

 byte() array = stream.readAllBytes();

Burada readAllBytes()yöntem, akıştaki tüm verileri döndürür ve bayt dizisinde depolar.

Not : Arrays.toString()Tüm diziyi bir dizgeye dönüştürmek için yöntemi kullandık .

Örnek 2: Output Stream kullanarak InputStream'i Byte Array'e dönüştürme

 import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // create an output stream ByteArrayOutputStream output = new ByteArrayOutputStream(); // create a byte array to store input stream byte() array = new byte(4); int i; // read all data from input stream to array while ((i = stream.read(array, 0, array.length)) != -1) ( // write all data from array to output output.write(array, 0, i); ) byte() data = output.toByteArray(); // convert the input stream to byte array System.out.println("Byte Array: " + Arrays.toString(data)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Çıktı

 Giriş Akışı: java.io.ByteArrayInputStream@27082746 Bayt Dizisi: (1, 2, 3, 4)

Yukarıdaki örnekte, dizi girdisinden bir girdi akışı oluşturduk. İfadeye dikkat edin,

 stream.read(array, 0, array.length)

Burada, akımdaki tüm öğeler, dizin 0'dan başlayarak dizi içinde saklanır . Daha sonra dizinin tüm öğelerini output adlı çıktı akışında saklarız.

 output.write(array, 0, i)

Son olarak, çıktı akışını data adlı bir bayt dizisine dönüştürmek için sınıfın toByteArray()yöntemini çağırıyoruz ByteArrayOutputStream.

Ilginç makaleler...