Java StringBufferInputStream klasa

Java StringBufferInputStream klasa

The Klasa StringBufferInoutStream u Javi omogućuje nam stvaranje ulaznog toka iz niza tako da možemo čitati bajtove iz njega. Radi samo s nižih 8 bitova svakog znaka. Ne može obraditi cijeli niz vrijednosti znakova. Umjesto korištenja ove klase najbolji pristup je koristiti ByteArrayInputStream koji nema to ograničenje može čitati cijeli niz vrijednosti znakova.

Bilješka: Oracle je zastario StringBufferInputStream.

Deklaracija klase StringBufferInputStream

Deklaracija klase StringBufferInputStream je ispod:

javna klasa StringBufferInputStream proširuje InputStream

Konstruktori u StringBufferInputStream

Ova klasa se sastoji od jednog konstruktora uz pomoć kojeg možemo kreirati objekt ove klase.

1. StringBufferInputStream(String str): T njegov se konstruktor koristi za stvaranje ulaznog toka niza za čitanje podataka iz navedenog niza.

Sintaksa:

StringBufferInputStream(String str)

Primjer:

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

Izlaz
Hello World! 


Java StringBufferStream metode

Slika ispod pokazuje metode klase PipedWriter.

io.StringBufferInputStream klasa u Javi


Sada ćemo detaljno razmotriti svaku metodu jednu po jednu:

1. čitaj(): Ova se metoda koristi za čitanje bajta podataka iz ulaznog toka

Sintaksa:

public int read()

  • Parametar: Ova metoda ne uzima nikakve parametre.
  • Vrsta povrata: Ova metoda vraća znak za čitanje kao cijeli broj, inače vraća -1 kada se dosegne kraj toka.


2. read(byte[] buffer int offset int maxlen): Ova se metoda koristi za čitanje određenog broja znakova iz međuspremnika.

Sintaksa:

public int read(byte[] buffer int offset int maxlen)

  • Parametar: Ova metoda uzima tri parametra koja su navedena u nastavku:
    • pufer: To je niz za pohranu znakova
    • pomak: To je početna pozicija s koje se pohranjuje karakter
    • maxlen: To je najveći broj znakova za čitanje.
  • Vrsta povrata: Ova metoda vraća najveći broj znakova za čitanje, inače vraća -1 kada se dosegne kraj toka.


3. reset(): Ova metoda se koristi za resetiranje toka i zbog toga čitanje počinje od početka.

Sintaksa:

javni void reset()

  • Parametar: Ova metoda ne uzima nikakve parametre.
  • Vrsta povrata: Ova metoda ne vraća ništa.


4. preskoči (dugo n): Ova se metoda koristi za preskakanje i ignoriranje nekih znakova u ulaznom toku.

Sintaksa:

javno dugo preskakanje (dugo n)

  • Parametar: Ova metoda uzima jedan parametar n koji je broj bajtova za preskakanje
  • Vrsta povrata: Ova metoda vraća stvarni broj preskočenih bajtova.


5. dostupno(): Ova metoda govori koliko je znakova preostalo za čitanje u ulaznom toku

Sintaksa:

public int dostupan()

  • Parametar: Ova metoda ne uzima nijedan parametar
  • Vrsta povrata: Ova metoda vraća broj znakova koji se mogu pročitati iz ulaznog toka.


Java program koji ilustrira rad metoda klase StringBufferInputStream

Sada ćemo u donjem primjeru vidjeti rad svih metoda.

Primjer:

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

Izlaz
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 
Napravi kviz