Il faut savoir qu'en plus des fichiers , la source et la destination du flux peuvent également être la mémoire de l'ordinateur.
Le flux d'entrée du tableau d'octets ByteArrayInputStream et le flux de sortie du tableau d'octets ByteArrayOutputStream utilisent respectivement des tableaux d'octets comme source et destination du flux.
ByteArrayInputStream(byte[]buf);ByteArrayInputStream(byte[]buf,intoffset,intlength);
La source du flux de tableau d'octets construit par le premier constructeur est constituée de toutes les unités d'octets du tableau spécifiées par le paramètre buf ; la source du flux de tableau d'octets construit par le deuxième constructeur est le tableau spécifié par buf, pris dans l'ordre à partir du décalage. unités d'octets de longueur.
Le flux d'entrée du tableau d'octets appelle public int read(); la méthode peut lire séquentiellement un octet à partir de la source et la méthode renvoie la valeur de l'octet lu. call public int read(byte[] b,int off,int len ); peut lire séquentiellement le nombre d'octets spécifié par le paramètre len à partir de la source et stocker les octets lus dans le tableau spécifié par le paramètre b. Le paramètre off spécifie la position de départ du tableau b pour stocker les octets lus. Cette méthode renvoie le nombre réel. d'octets lus Si aucun octet n'a été lu, la méthode read renvoie -1.
ByteArrayOutputStream();ByteArrayOutputStream(intsize);
Le flux de sortie du tableau d'octets construit par le premier constructeur pointe vers un tampon avec une taille par défaut de 32 octets. Si le nombre d'octets écrits par le flux de sortie dans le tampon est supérieur au tampon, la capacité du tampon augmentera automatiquement.
La taille initiale du tampon pointé par le flux de sortie du tableau d'octets construit par le deuxième constructeur est spécifiée par le paramètre size. Si le nombre d'octets écrits par le flux de sortie dans le tampon est supérieur au tampon, la capacité du tampon sera automatiquement. augmenter.
Le flux de sortie du tableau d'octets appelle public void write(int b) ; la méthode peut écrire un octet dans le tampon de manière séquentielle ; la méthode appelle public void write(byte[] b, int off, int len) ; in Les octets len spécifiés sont écrits dans le tampon de manière séquentielle et le paramètre off spécifie la position de départ des octets écrits à partir de b ; l'appel de la méthode public byte[] toByteArray(); .
Au flux de tableau d'octets correspondent la classe CharArrayReader et la classe CharArrayWriter du flux de tableau de caractères. Le flux de tableau de caractères utilise des tableaux de caractères comme source et destination du flux respectivement.
Par exemple, utilisez un flux de tableau pour écrire « Festival de la mi-automne » et « Joyeux festival de la mi-automne » dans la mémoire (le tampon du flux de sortie), puis lisez les données écrites de la mémoire :
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){try{ByteArrayOutputStreamoutByte=newByteArrayOutputStream();byte[]byteContent=mid-autumnfestival.getBytes();outByte.write(byteContent);ByteArrayInputStreamByte=newByteArrayInputStream(outByte. versByteArray ());bytebackByte[]=newbyte[outByte.toByteArray().length];inByte.read(backByte);System.out.println(newString(backByte));CharArrayWriteroutChar=newCharArrayWriter();char[]charContent=Mid -Festival d'automne Happy.toCharArray();outChar.write(charContent);CharArrayReaderinChar=newCharArrayReader(outChar.toCharArray());charbackChar[]=newchar[outChar.toCharArray().length];inChar.read(backChar);System .out.println(newString(backChar));}catch(IOExceptionexp){}}}