Јава БуффередОутпутСтреам Цласс
У Јави се класа БуффередОутпутСтреам користи за ефикасније уписивање података у излазни ток. Додаје бафер другом излазном току смањујући број И/О операција тако што привремено чува податке у меморији пре него што их упише на одредиште (попут датотеке).
Припада пакету јава.ио и проширује класу ФилтерОутпутСтреам.
Цласс Децларатион
јавна класа БуффередОутпутСтреам проширује ФилтерОутпутСтреам
- Побољшава И/О перформансе коришћењем бафера за смањење директног приступа диску.
- Подаци се уписују у бафер и само када је бафер пун (или испран) шаљу се основном излазном току.
- Обично се користи са ФилеОутпутСтреам.
- Помаже у писању бајт података као што су текстуалне датотеке слика и бинарни подаци.
Конструктори
- БуффередОутпутСтреам(ОутпутСтреам оут): Креира баферовани излазни ток са подразумеваном величином бафера од 8192 бајта.
- БуффередОутпутСтреам(ОутпутСтреам оут инт сизе): Креира баферовани излазни ток са наведеном величином бафера.
Важне методе
| Метод | Опис |
|---|---|
void write(int b) | Уписује један бајт у излазни ток. |
void write(byte[] b int off int len) | Уписује део низа бајтова у излазни ток. |
void flush() | Испразни бафер и присиљава све бафероване излазне бајтове да буду уписани. |
void close() | Затвара ток и прво га испира. |
Java import java.io.* ; public class BufferedOutputStreamExample { public static void main ( String [] args ) { String data = 'BufferedOutputStream in Java Example' ; try { FileOutputStream fileOut = new FileOutputStream ( 'output.txt' ); BufferedOutputStream bufferOut = new BufferedOutputStream ( fileOut ); byte [] bytes = data . getBytes (); bufferOut . write ( bytes ); bufferOut . close (); System . out . println ( 'Data written successfully.' ); } catch ( IOException e ) { e . printStackTrace (); } } }
import java.io.* ; public class BufferedOutputStreamExample { public static void main ( String [] args ) { String data = 'BufferedOutputStream in Java Example' ; try { FileOutputStream fileOut = new FileOutputStream ( 'output.txt' ); BufferedOutputStream bufferOut = new BufferedOutputStream ( fileOut ); byte [] bytes = data . getBytes (); bufferOut . write ( bytes ); bufferOut . close (); System . out . println ( 'Data written successfully.' ); } catch ( IOException e ) { e . printStackTrace (); } } }
Излаз (садржај оутпут.ткт):
БуффередОутпутСтреам у Јава примеру
Пример 2: Коришћење методе флусх().
Java import java.io.* ; public class FlushExample { public static void main ( String [] args ) { try { FileOutputStream fileOut = new FileOutputStream ( 'flush.txt' ); BufferedOutputStream bufferOut = new BufferedOutputStream ( fileOut ); bufferOut . write ( 'Hello' . getBytes ()); bufferOut . flush (); // ensures data is written immediately bufferOut . close (); System . out . println ( 'Flush example completed.' ); } catch ( IOException e ) { e . printStackTrace (); } } }
Излаз (садржај флусх.ткт):
Здраво
Java import java.io.* ; public class LargeDataExample { public static void main ( String [] args ) { try { FileOutputStream fileOut = new FileOutputStream ( 'large.txt' ); BufferedOutputStream bufferOut = new BufferedOutputStream ( fileOut 8192 ); // custom buffer size for ( int i = 0 ; i < 1000 ; i ++ ) { bufferOut . write (( 'Line ' + i + 'n' ). getBytes ()); } bufferOut . close (); System . out . println ( 'Large data written successfully.' ); } catch ( IOException e ) { e . printStackTrace (); } } }
import java.io.* ; public class LargeDataExample { public static void main ( String [] args ) { try { FileOutputStream fileOut = new FileOutputStream ( 'large.txt' ); BufferedOutputStream bufferOut = new BufferedOutputStream ( fileOut 8192 ); // custom buffer size for ( int i = 0 ; i < 1000 ; i ++ ) { bufferOut . write (( 'Line ' + i + 'n' ). getBytes ()); } bufferOut . close (); System . out . println ( 'Large data written successfully.' ); } catch ( IOException e ) { e . printStackTrace (); } } }
Излаз (садржај великих.ткт првих неколико редова):
Линија 0
Линија 1
Линија 2
...
Предности
- Брже перформансе писања у поређењу са стримовима без баферовања.
- Смањује број физичких операција писања.
- Омогућава ефикасно писање великих података.