Classe Java ByteArrayInputStream

Java 流(Stream)Flux Java


Le flux d'entrée de tableau d'octets crée un tampon de tableau d'octets en mémoire, et les données lues à partir du flux d'entrée sont stockées dans ce tampon de tableau d'octets. Il existe plusieurs façons de créer un objet de flux d'entrée de tableau d'octets.

Créer en acceptant un tableau d'octets comme paramètre :

ByteArrayInputStream bArray = new ByteArrayInputStream(byte [] a);

Une autre façon de le créer consiste à accepter un tableau d'octets et deux variables entières, off et len, où off représente le premier octet à lire et len représente la longueur des octets à lire.

ByteArrayInputStream bArray = new ByteArrayInputStream(byte []a, 
                                                       int off, 
                                                       int len)

Après avoir créé avec succès un objet de flux d'entrée de tableau d'octets, vous pouvez vous référer aux méthodes de la liste suivante pour effectuer des opérations de lecture ou d'autres opérations sur le flux.

Non. Description de la méthode
1 public int read()       
Lit le prochain octet de données depuis ce flux d'entrée.
2 public int read(byte[] r, int off, int len)
Lit jusqu'àlenoctets de données depuis ce flux d'entrée dans un tableau d'octets.
3 public int available()
Renvoie le nombre d'octets pouvant être lus depuis ce flux d'entrée sans blocage.
4 public void mark(int read)
Définit la position marquée actuelle dans le flux.
5 public long skip(long n)
Saute par-dessusnoctets d'entrée depuis ce flux d'entrée.

Exemple

L'exemple suivant montre l'utilisation de 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 ) {
         // 获取用户输入值
         bOutput.write(System.in.read());
      }

      byte b [] = bOutput.toByteArray();
      System.out.println("Print the content");
      for(int x= 0 ; x < b.length; x++) {
         // 打印字符
         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();
      }
   }
}

La sortie de l'exemple ci-dessus est la suivante :

asdfghjkly
Print the content
a   s   d   f   g   h   j   k   l   y
Converting characters to Upper case
A
S
D
F
G
H
J
K
L
Y

Java 流(Stream)Flux Java

Autres extensions