Razred Java StringBufferInputStream

Razred Java StringBufferInputStream

The Razred StringBufferInoutStream v Javi nam omogoča, da ustvarimo vhodni tok iz niza, tako da lahko beremo bajte iz njega. Deluje samo z nižjimi 8 biti vsakega znaka. Ne more obdelati celotnega obsega vrednosti znakov. Namesto uporabe tega razreda je najboljši pristop uporaba ByteArrayInputStream ki nima te omejitve, lahko prebere celoten obseg znakovnih vrednosti.

Opomba: Oracle je opustil StringBufferInputStream.

Deklaracija razreda StringBufferInputStream

Deklaracija razreda StringBufferInputStream je spodaj:

javni razred StringBufferInputStream razširja InputStream

Konstruktorji v StringBufferInputStream

Ta razred je sestavljen iz enega konstruktorja, s pomočjo katerega lahko ustvarimo objekt tega razreda.

1. StringBufferInputStream(String str): T njegov konstruktor se uporablja za ustvarjanje vhodnega toka niza za branje podatkov iz določenega niza.

Sintaksa:

StringBufferInputStream(String str)

primer:

Java
   // Demonstrating the working    // of StringBufferInputStream(String str)   import     java.io.*  ;   public     class   Geeks  {      public     static     void     main  (  String  []     args  )     {          // Creating a String to be used with StringBufferInputStream      String     str     =     'Hello World!'  ;      // Creating StringBufferInputStream from the String      StringBufferInputStream     is     =     new     StringBufferInputStream  (  str  );      // Reading bytes from the StringBufferInputStream      int     data  ;      try     {      while     ((  data     =     is  .  read  ())     !=     -  1  )     {      // Print each byte as a character      System  .  out  .  print  ((  char  )     data  );      }      is  .  close  ();      }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      }   }   

Izhod
Hello World! 


Metode Java StringBufferStream

Spodnja slika prikazuje metode razreda PipedWriter.

Razred io.StringBufferInputStream v Javi


Zdaj bomo podrobno razpravljali o vsaki metodi posebej:

1. preberi(): Ta metoda se uporablja za branje bajta podatkov iz vhodnega toka

Sintaksa:

public int read()

  • Parameter: Ta metoda ne zajema nobenega parametra.
  • Vrsta vračila: Ta metoda vrne znak za branje kot celo število, sicer vrne -1, ko je dosežen konec toka.


2. read(byte[] buffer int offset int maxlen): Ta metoda se uporablja za branje določenega števila znakov iz medpomnilnika.

Sintaksa:

  • Parameter: Ta metoda zahteva tri parametre, ki so navedeni spodaj:
    • medpomnilnik: Je niz za shranjevanje znakov
    • odmik: To je začetni položaj, od koder lahko shranite značaj
    • maxlen: To je največje število znakov za branje.
  • Vrsta vračila: Ta metoda vrne največje število znakov za branje, sicer vrne -1, ko je dosežen konec toka.


3. ponastavi(): Ta metoda se uporablja za ponastavitev toka in zaradi tega se branje začne od začetka.

Sintaksa:

javna praznina ponastavi()

  • Parameter: Ta metoda ne zajema nobenega parametra.
  • Vrsta vračila: Ta metoda ne vrne ničesar.


4. preskoči (dolg n): Ta metoda se uporablja za preskok in ignoriranje nekaterih znakov v vhodnem toku.

Sintaksa:

javni dolgi preskok (dolgi n)

  • Parameter: Ta metoda vzame en sam parameter n, ki je število bajtov, ki jih je treba preskočiti
  • Vrsta vračila: Ta metoda vrne dejansko število preskočenih bajtov.


5. na voljo(): Ta metoda pove, koliko znakov je ostalo za branje v vhodnem toku

Sintaksa:

javni int na voljo()

  • Parameter: Ta metoda ne sprejme nobenega parametra
  • Vrsta vrnitve: Ta metoda vrne število znakov, ki jih je mogoče prebrati iz vhodnega toka.


Program Java, ki ponazarja delovanje metod razreda StringBufferInputStream

V spodnjem primeru bomo videli delovanje vseh metod.

primer:

Java
   // Demonstrating the working of    // read() read(byte[] buffer int offset int maxlen)   // reset() skip(long n) available()   import     java.io.*  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )     throws     IOException     {          String     s1     =     'Hello Geeks'  ;      String     s2     =     'GeeksForGeeks'  ;      StringBufferInputStream     b1     =     new     StringBufferInputStream  (  s1  );      StringBufferInputStream     b2     =     new     StringBufferInputStream  (  s2  );      // available()      System  .  out  .  println  (  'Use of available() 1: '     +     b1  .  available  ());      int     a  ;      System  .  out  .  println  (  'Use of read() method:'  );      while     ((  a     =     b1  .  read  ())     !=     -  1  )     {      char     c     =     (  char  )     a  ;      System  .  out  .  println  (  c  );      // skip()      b1  .  skip  (  1  );      }      System  .  out  .  println  (  'Use of available() 2: '     +     b2  .  available  ());      byte  []     byteBuffer     =     new     byte  [  15  ]  ;      b2  .  read  (  byteBuffer       1       2  );      int     b  ;      System  .  out  .  print  (  'Remaining characters after partial read: '  );      while     ((  b     =     b2  .  read  ())     !=     -  1  )     {      System  .  out  .  print  ((  char  )     b  );      }      // reset()      b1  .  reset  ();      System  .  out  .  print  (  'nAfter reset(): '  );      int     i  ;      while     ((  i     =     b1  .  read  ())     !=     -  1  )     {      System  .  out  .  print  ((  char  )     i  );      }      }   }   

Izhod
Use of available() 1: 11 Use of read() method: H l o G e s Use of available() 2: 13 Remaining characters after partial read: eksForGeeks After reset(): Hello Geeks 
Ustvari kviz