Java >> Java tutorial >  >> Tag >> class

Java InputStream klasse | java.io | Metoder og eksempel

Java InputStream-klasse er basisklassen (SuperClass) for alle io-klasser, der repræsenterer en inputstrøm af bytes. InputStream er forbundet til en af ​​de førnævnte dataressourcer og læser data fra denne kilde. Dette er hovedformålet med java InputStream-klassen at gøre data tilgængelige fra kilden og manipulation inde fra dit program.

Om InputStream – java.io.InputStream

  • Modul – java.base
  • Pakke- java.io
  • Siden: 1.0

InputStream-underklasser

Listen over direkte kendte underklasser:

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

Alle implementerede grænseflader:

  • Lukbar,
  • Automatisk lukning

Java inputStream eksempel

Se det enkle eksempel på en Java InputStream-klasse , Hvor dette program brugte en FileInputStream for at læse tekstfilen.

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();
        }

    }


}

Java InputStream-klassemetoder

Metode Syntaks Beskrivelse
read() offentlig abstrakt int read() Læs input Stream næste byte med data
mark() offentlig void mark(int arg) Marker den aktuelle position. Det har sat læsegrænsen.
reset() public void reset() Repositionerer inputstrømmen til den markerede position.
spring() offentlig lang spring(langt arg) Spring over og Kassér arg byte i inputstrømmen.
close() offentlig void close() Lukket inputstrømmen og frigivelse ressourcen.
markSupported() offentlig boolesk markSupported() Tjek tilstand om inputstrømmen understøtter mark() og nulstillingsmetoden
read() public int read(byte[] arg) Læs et antal bytes af arg.length og method return int.

Eksempler på metoder i InputStream

Se eksemplet på, hvordan du bruger metoder til InputStream i dit java-program. For vi har test.txt" fil med "FilesStream ” data for at gøre alle eksempler med det.

read()

  • abstract int read() – læser den næste byte med data fra inputstrømmen.
  • int read(byte[] arg) – læser et vist antal bytes fra inputstrømmen og gemmer dem i bufferarrayet arg.
  • int read(byte[] arg, int off, int len) – læser op til udlånte bytes af data fra inputstrømmen til en række bytes.
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();
            }
        }
    }

}

Output:

mark()

void mark(int readlimit) – markerer den aktuelle position i denne inputstrøm.

 mark() sætter et mærke internt InputStream som markerer det punkt i strømmen, hvortil data er blevet læst indtil videre. Koden ved hjælp af InputStream kan derefter fortsætte med at læse data fra den.

//mark
inputStream.mark(0);

reset()

void reset() – flytter denne strøm til positionen på det tidspunkt, hvor markeringsmetoden sidst blev kaldt på denne inputstrøm.

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();
        }
    }

}

Output: Char:F
Char :i
reset()-metoden understøttes ikke.

spring()

langt spring(langt n) – springer over og kasserer n bytes data fra denne inputstrøm.

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();
        }
    }

}

Output:

close()

void close() – lukker denne inputstrøm og frigiver alle systemressourcer, der er knyttet til strømmen.

At lukke en InputStream er vigtigt , Når du er færdig med en Java InputStream, skal du lukke den. Brug af en InputStream ved at ringe til InputStream close() metode. Her er et eksempel på at åbne en InputStream , læse alle data fra det, og derefter lukke det:

inputStream.close();

markSupported()

boolean markSupported() – Tjek, om denne inputstrøm understøtter markerings- og nulstillingsmetoderne.

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

Bemærk: Dette eksempel (projekt) er udviklet i IntelliJ IDEA 2018.2.6 (Community Edition)
JRE:11.0.1
JVM: OpenJDK 64-Bit Server VM af JetBrains s.r.o
macOS 10.14.1
Java version 11
Alle Java Inputstream Class er i Java 11, så det kan ændre sig på anderledes end Java 9 eller 10 eller opgraderede versioner.


Java tag