У Јави се класа БуффередОутпутСтреам користи за ефикасније уписивање података у излазни ток. Додаје бафер другом излазном току смањујући број И/О операција тако што привремено чува податке у меморији пре него што их упише на одредиште (попут датотеке).
Припада пакету јава.ио и проширује класу ФилтерОутпутСтреам.
питхон или
Цласс Децларатион
јавна класа БуффередОутпутСтреам проширује ФилтерОутпутСтреам
- Побољшава И/О перформансе коришћењем бафера за смањење директног приступа диску.
- Подаци се уписују у бафер и само када је бафер пун (или испран) шаљу се основном излазном току.
- Обично се користи са ФилеОутпутСтреам.
- Помаже у писању бајт података као што су текстуалне датотеке слика и бинарни подаци.
Конструктори
- БуффередОутпутСтреам(ОутпутСтреам оут): Креира баферовани излазни ток са подразумеваном величином бафера од 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: Коришћење методе флусх().
Javaimport 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
...
Предности
- Брже перформансе писања у поређењу са стримовима без баферовања.
- Смањује број физичких операција писања.
- Омогућава ефикасно писање великих података.