Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Kelas Java ByteArrayInputStream

Kelas Java ByteArrayInputStream

Dalam tutorial ini, kita akan belajar tentang Java ByteArrayInputStream dan metodenya dengan bantuan contoh.

ByteArrayInputStream kelas java.io package dapat digunakan untuk membaca array data input (dalam byte).

Ini memperluas InputStream kelas abstrak.

Catatan :Di ByteArrayInputStream , aliran input dibuat menggunakan larik byte. Ini mencakup larik internal untuk menyimpan data larik byte tertentu.


Buat ByteArrayInputStream

Untuk membuat aliran input array byte, kita harus mengimpor java.io.ByteArrayInputStream paket dulu. Setelah kita mengimpor paket, berikut adalah cara membuat aliran input.

// Creates a ByteArrayInputStream that reads entire array
ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr);

Di sini, kami telah membuat aliran input yang membaca seluruh data dari arr Himpunan. Namun, kita juga dapat membuat aliran input yang hanya membaca beberapa data dari larik.

// Creates a ByteArrayInputStream that reads a portion of array
ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr, int start, int length);

Di sini aliran input membaca jumlah byte yang sama dengan panjang dari array mulai dari start posisi.


Metode ByteArrayInputStream

ByteArrayInputStream class menyediakan implementasi untuk berbagai metode yang ada di InputStream kelas.

read() Metode

Contoh:ByteArrayInputStream untuk membaca data

import java.io.ByteArrayInputStream;

public class Main {
  public static void main(String[] args) {

    // Creates an array of byte
    byte[] array = {1, 2, 3, 4};

    try {
      ByteArrayInputStream input = new ByteArrayInputStream(array);

      System.out.print("The bytes read from the input stream: ");

      for(int i= 0; i < array.length; i++) {

        // Reads the bytes
        int data = input.read();
        System.out.print(data + ", ");
      }
      input.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Keluaran

The bytes read from the input stream: 1, 2, 3, 4,

Dalam contoh di atas, kami telah membuat aliran input array byte bernama input .

ByteArrayInputStream input = new ByteArrayInputStream(array);

Di sini, aliran input mencakup semua data dari larik yang ditentukan. Untuk membaca data dari aliran input, kami telah menggunakan read() metode.


Metode yang tersedia()

Untuk mendapatkan jumlah byte yang tersedia di aliran input, kita dapat menggunakan available() metode. Misalnya,

import java.io.ByteArrayInputStream;

public class Main {

  public static void main(String args[]) {

    // Creates an array of bytes
    byte[] array = { 1, 2, 3, 4 };

    try {
      ByteArrayInputStream input = new ByteArrayInputStream(array);

      // Returns the available number of bytes
      System.out.println("Available bytes at the beginning: " + input.available());

      // Reads 2 bytes from the input stream
      input.read();
      input.read();

      // Returns the available number of bytes
      System.out.println("Available bytes at the end: " + input.available());

      input.close();
    }

    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Keluaran

Available bytes at the beginning: 4
Available bytes at the end: 2

Pada contoh di atas,

  1. Kami telah menggunakan available() metode untuk memeriksa jumlah byte yang tersedia di aliran input.
  2. Kami kemudian menggunakan read() metode 2 kali untuk membaca 2 byte dari aliran input.
  3. Sekarang, setelah membaca 2 byte, kami telah memeriksa byte yang tersedia. Kali ini byte yang tersedia berkurang 2.

lewati() Metode

Untuk membuang dan melewati jumlah byte yang ditentukan, kita dapat menggunakan skip() metode. Misalnya,

import java.io.ByteArrayInputStream;

public class Main {

  public static void main(String args[]) {

    // Create an array of bytes
    byte[] array = { 1, 2, 3, 4 };
    try {
      ByteArrayInputStream input = new ByteArrayInputStream(array);

      // Using the skip() method
      input.skip(2);
      System.out.print("Input stream after skipping 2 bytes: ");

      int data = input.read();
      while (data != -1) {
        System.out.print(data + ", ");
        data = input.read();
      }

      // close() method
      input.close();
    }

    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Keluaran

Input stream after skipping 2 bytes: 3, 4,

Pada contoh di atas, kita telah menggunakan skip() metode untuk melewatkan 2 byte data dari aliran input. Oleh karena itu 1 dan 2 tidak dibaca dari aliran input.


close() Metode

Untuk menutup aliran input, kita dapat menggunakan close() metode.

Namun, close() metode tidak berpengaruh dalam ByteArrayInputStream kelas. Kita dapat menggunakan metode kelas ini bahkan setelah close() metode ini dipanggil.


Metode ByteArrayInputStream Lainnya

Metode Deskripsi
finalize() memastikan bahwa close() metode ini disebut
mark() menandai posisi dalam aliran input hingga data yang telah dibaca
reset() mengembalikan kontrol ke titik di aliran input tempat tanda ditetapkan
markSupported() memeriksa apakah aliran input mendukung mark() dan reset()

Untuk mempelajari lebih lanjut, kunjungi Java ByteArrayInputStream (dokumentasi resmi Java).


java

  1. Java Salin Array
  2. Kata kunci terakhir Java
  3. Instance Java dari Operator
  4. Kelas Statis Bersarang Java
  5. Kelas Anonim Java
  6. Kelas Tunggal Jawa
  7. Refleksi Jawa
  8. Kelas Java ObjectOutputStream
  9. Kelas Pemindai Java
  10. Java Generik