Java - ByteArrayInputStream

La classe ByteArrayInputStream permet d'utiliser un tampon dans la mémoire comme InputStream. La source d'entrée est un tableau d'octets.

La classe ByteArrayInputStream fournit les constructeurs suivants.

N ° Sr. Constructeur et description
1

ByteArrayInputStream(byte [] a)

Ce constructeur accepte un tableau d'octets comme paramètre.

2

ByteArrayInputStream(byte [] a, int off, int len)

Ce constructeur prend un tableau d'octets et deux valeurs entières, où off est le premier octet à lire et len est le nombre d'octets à lire.

Une fois que vous avez l' objet ByteArrayInputStream en main, il existe une liste de méthodes d'assistance qui peuvent être utilisées pour lire le flux ou pour effectuer d'autres opérations sur le flux.

N ° Sr. Méthode et description
1

public int read()

Cette méthode lit l'octet suivant de données à partir de InputStream. Renvoie un entier comme octet suivant de données. Si c'est la fin du fichier, il renvoie -1.

2

public int read(byte[] r, int off, int len)

Cette méthode lit jusqu'à len nombre d'octets à partir de offdu flux d'entrée dans un tableau. Renvoie le nombre total d'octets lus. Si c'est la fin du fichier, -1 sera renvoyé.

3

public int available()

Donne le nombre d'octets pouvant être lus à partir de ce flux d'entrée de fichier. Renvoie un entier qui donne le nombre d'octets à lire.

4

public void mark(int read)

Cela définit la position marquée actuelle dans le flux. Le paramètre donne la limite maximale d'octets qui peuvent être lus avant que la position marquée ne devienne invalide.

5

public long skip(long n)

Saute un nombre 'n' d'octets du flux. Cela renvoie le nombre réel d'octets ignorés.

Exemple

Voici l'exemple pour illustrer ByteArrayInputStream et ByteArrayOutputStream.

import java.io.*;
public class ByteStreamTest {

   public static void main(String args[])throws IOException {
      ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12);

      while( bOutput.size()!= 10 ) {
         // Gets the inputs from the user
         bOutput.write("hello".getBytes()); 
      }
      byte b [] = bOutput.toByteArray();
      System.out.println("Print the content");
      
      for(int x = 0 ; x < b.length; x++) {
         // printing the characters
         System.out.print((char)b[x]  + "   "); 
      }
      System.out.println("   ");
      
      int c;
      ByteArrayInputStream bInput = new ByteArrayInputStream(b);
      System.out.println("Converting characters to Upper case " );
      
      for(int y = 0 ; y < 1; y++) {
         while(( c = bInput.read())!= -1) {
            System.out.println(Character.toUpperCase((char)c));
         }
         bInput.reset(); 
      }
   }
}

Voici l'exemple d'exécution du programme ci-dessus -

Production

Print the content
h   e   l   l   o   h   e   l   l   o      
Converting characters to Upper case 
H
E
L
L
O
H
E
L
L
O