Java StringBufferInputStream Sınıfı

Java StringBufferInputStream Sınıfı

Java'da StringBufferInoutStream sınıfı baytları okuyabilmemiz için bir dizeden bir giriş akışı oluşturmamıza olanak tanır. Yalnızca her karakterin alt 8 bitiyle çalışır. Karakter değerlerinin tamamını işleyemez. Bu sınıfı kullanmak yerine en iyi yaklaşım kullanmaktır. ByteArrayInputStream bu sınırlamaya sahip olmayan karakter değerlerinin tamamını okuyabilir.

Not: StringBufferInputStream, Oracle tarafından kullanımdan kaldırıldı.

StringBufferInputStream Sınıfının Bildirisi

StringBufferInputStream sınıfının beyanı aşağıdadır:

genel sınıf StringBufferInputStream, inputStream'i genişletir

StringBufferInputStream'deki yapıcılar

Bu sınıf, yardımıyla bu sınıfın bir nesnesini yaratabileceğimiz bir kurucudan oluşur.

1. StringBufferInputStream(String str): T yapıcısı, belirtilen bir dizeden veri okumak için bir dize giriş akışı oluşturmak için kullanılır.

Sözdizimi:

StringBufferInputStream(Dize dizisi)

Örnek:

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

Çıkış
Hello World! 


Java StringBufferStream Yöntemleri

Aşağıdaki resimde PipedWriter sınıfının yöntemleri gösterilmektedir.

Java


Şimdi her yöntemi tek tek ayrıntılı olarak tartışacağız:

1. oku(): Bu yöntem giriş akışından bir bayt veri okumak için kullanılır

Sözdizimi:

genel int okuma()

  • Parametre: Bu yöntem herhangi bir parametre almaz.
  • İade Türü: Bu yöntem okuma karakterini bir tamsayı olarak döndürür, aksi takdirde akışın sonuna ulaşıldığında -1 değerini döndürür.


2. read(byte[] buffer int offset int maxlen): Bu yöntem, arabellekten belirli sayıda karakteri okumak için kullanılır.

Sözdizimi:

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

  • Parametre: Bu yöntem aşağıda listelenen üç parametreyi alır:
    • tampon: Karakterleri saklamak için kullanılan bir dizidir
    • telafi etmek: Karakterin depolanacağı başlangıç ​​konumudur
    • maksimum: Okunacak maksimum karakter sayısıdır.
  • İade Türü: Bu yöntem okunacak maksimum karakter sayısını döndürür, aksi takdirde akışın sonuna ulaşıldığında -1 değerini döndürür.


3. sıfırlama(): Bu yöntem akışı sıfırlamak için kullanılır ve bu nedenle okuma baştan başlar.

Sözdizimi:

genel geçersiz sıfırlama ()

  • Parametre: Bu yöntem herhangi bir parametre almaz.
  • İade Türü: Bu yöntem hiçbir şey döndürmez.


4. atla(uzun n): Bu yöntem, giriş akışındaki bazı karakterleri atlamak ve yok saymak için kullanılır.

Sözdizimi:

halka açık uzun atlama (uzun n)

  • Parametre: Bu yöntem, atlanacak bayt sayısı olan tek bir n parametresini alır.
  • İade Türü: Bu yöntem atlanan baytların gerçek sayısını döndürür.


5. mevcut(): Bu yöntem, giriş akışında okunacak kaç karakter kaldığını söyler

Sözdizimi:

herkese açık int mevcut()

  • Parametre: Bu yöntem herhangi bir parametre almaz.
  • Dönüş Türü: Bu yöntem, giriş akışından okunabilecek karakter sayısını döndürür.


StringBufferInputStream Sınıfı Yöntemlerinin Çalışmasını Gösteren Java Programı

Şimdi aşağıdaki örnekte tüm yöntemlerin çalışmasını göreceğiz.

Örnek:

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

Çıkış
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 
Test Oluştur