Java >> Tutoriel Java >  >> Tag >> class

Classe Java InputStream | java.io | Méthodes et exemple

Classe Java InputStream est la classe de base (SuperClass) de toutes les classes io représentant un flux d'entrée d'octets. InputStream est connecté à l'une des ressources de données susmentionnées et lit les données de cette source. C'est le but principal de la classe Java InputStream de rendre les données disponibles à partir de la source et de les manipuler depuis l'intérieur de votre programme.

À propos d'InputStream – java.io.InputStream

  • Module – java.base
  • Forfait- java.io
  • Depuis : 1.0

Sous-classes InputStream

La liste des sous-classes connues directes :

  • AudioInputStream,
  • ByteArrayInputStream,
  • FileInputStream,
  • FilterInputStream,
  • InputStream,
  • ObjectInputStream,
  • PipedInputStream,
  • SequenceInputStream,
  • StringBufferInputStream

Toutes les interfaces implémentées :

  • Fermable,
  • Fermeture automatique

Exemple de flux d'entrée Java

Voir l'exemple simple d'une classe Java InputStream , Où ce programme a utilisé un FileInputStream pour lire le fichier texte.

import java.io.FileInputStream;
import java.io.InputStream;

public class Hello {

    public static void main(String arg[]){
        try {
            InputStream inputstream = new FileInputStream("test.txt");

            int data = inputstream.read();
            while(data != -1) {
                //byte data...
                System.out.println(data);
                // convert into char
                System.out.println((char) data);

                data = inputstream.read();
            }
            inputstream.close();
        }catch (Exception ex){
            ex.printStackTrace();
        }

    }


}

Méthodes de la classe Java InputStream

Méthode Syntaxe Description
lire() public abstract int read() Lire le prochain octet de données du flux d'entrée
marque() marque vide publique(int arg) Marquer la position actuelle. Il définit la limite de lecture.
réinitialiser() public void reset() Repositionne le flux d'entrée à la position marquée.
ignorer() saut long public (argument long) Ignorer et Supprimer octet arg dans le flux d'entrée.
fermer() public void close() Fermeture du flux d'entrée et release la ressource.
markSupported() marque booléenne publiqueSupported() Vérifier condition si le flux d'entrée prend en charge la méthode mark() et reset
lire() public int read(byte[] arg) Lire un nombre d'octets de arg.length et method return int.

Exemples de méthodes dans InputStream

Voir l'exemple d'utilisation des méthodes de InputStream dans votre programme Java. Car nous avons test.txt" avec "FilesStream ” données pour faire tous les exemples avec.

lire()

  • abstract int read() – lit le prochain octet de données du flux d'entrée.
  • int lire(octet[] arg) - lit un certain nombre d'octets du flux d'entrée et les stocke dans le tableau de tampons arg.
  • int read(byte[] arg, int off, int len) – lit jusqu'à len octets de données du flux d'entrée dans un tableau d'octets.
import java.io.FileInputStream;
import java.io.InputStream;

public class InputStreamExample {

    public static void main(String[] args) throws Exception {
        InputStream inputStream = null;
        try {

            inputStream = new FileInputStream("test.txt");

            // read() method : reading and printing Characters
            // one by one
            System.out.println("Char : " + (char) inputStream.read());
            System.out.println("Char : " + (char) inputStream.read());


        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            // releasing the resources back to the
            // GarbageCollector when closes
            if (inputStream != null) {
                // Use of close() : closing the file
                // and releasing resources
                inputStream.close();
            }
        }
    }

}

Sortie :

marque()

marque vide (int readlimit) – marque la position actuelle dans ce flux d'entrée.

Le mark() définit une marque en interne InputStream qui marque le point du flux auquel les données ont été lues jusqu'à présent. Le code utilisant le InputStream peut alors continuer à en lire les données.

//mark
inputStream.mark(0);

réinitialiser()

annuler la réinitialisation() – repositionne ce flux à la position au moment où la méthode mark a été appelée pour la dernière fois sur ce flux d'entrée.

import java.io.FileInputStream;
import java.io.InputStream;

public class InputStreamExample {

    public static void main(String[] args) throws Exception {
        InputStream inputStream = null;
        try {

            inputStream = new FileInputStream("test.txt");

            System.out.println("Char : " + (char) inputStream.read());

            //mark
            inputStream.mark(0);

            boolean check = inputStream.markSupported();
            if (inputStream.markSupported())
            {
                // reset() method : repositioning the stram to
                // marked positions.
                inputStream.reset();
                System.out.println("reset() invoked");
                System.out.println("Char : "+(char)inputStream.read());
            }
            else
                System.out.println("reset() method not supported.");


        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}

Sortie : Caractère :F
Char :je
méthode reset() non prise en charge.

ignorer()

long saut (long n) – ignore et supprime n octets de données de ce flux d'entrée.

import java.io.FileInputStream;
import java.io.InputStream;

public class InputStreamExample {

    public static void main(String[] args) throws Exception {
        InputStream inputStream = null;
        try {

            inputStream = new FileInputStream("test.txt");

            System.out.println("Char : " + (char) inputStream.read());

            //skip
            inputStream.skip(1);
            System.out.println("Char : " + (char) inputStream.read());


        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}

Sortie :

fermer()

annuler la fermeture() – ferme ce flux d'entrée et libère toutes les ressources système associées au flux.

La fermeture d'un InputStream est important , Lorsque vous avez terminé avec un Java InputStream, vous devez le fermer. Utiliser un InputStream en appelant le InputStream close() méthode. Voici un exemple d'ouverture un InputStream , en lisant toutes les données, puis en le fermant :

inputStream.close();

markSupported()

booléen markSupported() - Vérifiez si ce flux d'entrée prend en charge les méthodes de marquage et de réinitialisation.

boolean check = inputStream.markSupported();
if (inputStream.markSupported())
    {
      inputStream.reset();
               
      System.out.println("Char : "+(char)inputStream.read());
    }

Remarque : Cet exemple (Project) est développé dans IntelliJ IDEA 2018.2.6 (Community Edition)
JRE :11.0.1
JVM : OpenJDK VM serveur 64 bits par JetBrains s.r.o
macOS 10.14.1
Java 11
Tous Classe Java Inputstream est en Java 11, il peut donc changer sur différentes versions de Java 9 ou 10 ou mises à niveau.


Balise Java