Bu eğitimde, örnekler yardımıyla Java BufferedOutputStream ve yöntemleri hakkında bilgi edineceğiz.
BufferedOutputStream
Sınıf java.io
paketi daha verimli (bayt) verileri yazmak için bir çıkış akışları ile birlikte kullanılır.
OutputStream
Soyut sınıfı genişletir .
BufferedOutputStream'in Çalışması
BufferedOutputStream
Bir iç muhafaza 8192 bayt tamponu .
Yazma işlemi sırasında baytlar disk yerine dahili tampona yazılır. Tampon doldurulduğunda veya akış kapatıldıktan sonra, tüm tampon diske yazılır.
Böylelikle diskle iletişim sayısı azalır. Bu nedenle bayt yazmak daha hızlıdır BufferedOutputStream
.
BufferedOutputStream oluşturma
Bir oluşturmak için BufferedOutputStream
önce java.io.BufferedOutputStream
paketi içe aktarmalıyız . Paketi buraya aktardıktan sonra çıktı akışını nasıl oluşturabiliriz.
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file);
Yukarıdaki örnekte, adlandırılmış dosya BufferdOutputStream
ile adlandırılmış bir tampon oluşturduk FileOutputStream
.
Burada, dahili arabelleğin varsayılan boyutu 8192 bayttır. Bununla birlikte, dahili tamponun boyutunu da belirleyebiliriz.
// Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size);
Arabellek, baytların dosyalara daha hızlı yazılmasına yardımcı olacaktır.
BufferedOutputStream Yöntemleri
BufferedOutputStream
Sınıfı farklı yöntemler için uygulamaları OutputStream
sınıfı.
write () Yöntem
write()
- çıktı akışının dahili tamponuna tek bir bayt yazarwrite(byte() array)
- belirtilen dizideki baytları çıktı akışına yazarwrite(byte() arr, int start, int length)
- Konum başlangıcından başlayarak bir diziden çıkış akışına uzunluğa eşit bayt sayısını yazar
Örnek: Verileri bir Dosyaya yazmak için BufferedOutputStream
import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a line of text inside the file"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates a BufferedOutputStream BufferedOutputStream output = new BufferedOutputStream(file); byte() array = data.getBytes(); // Writes data to the output stream output.write(array); output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Yukarıdaki örnekte, ile birlikte output adında tamponlanmış bir çıktı akışı oluşturduk FileOutputStream
. Çıkış akışı output.txt dosyasıyla bağlantılıdır .
FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file);
Dosyaya veri yazmak için write()
yöntemi kullandık .
Burada programı çalıştırdığımızda output.txt dosyası aşağıdaki içerikle doldurulur.
This is a line of text inside the file.
Not : Programda getBytes()
kullanılan yöntem bir dizgeyi bayt dizisine dönüştürür.
flush () Yöntem
Dahili tamponu temizlemek için flush()
yöntemi kullanabiliriz . Bu yöntem, çıktı akışını arabellekte bulunan tüm verileri hedef dosyaya yazmaya zorlar. Örneğin,
import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a demo of the flush method"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(" flush.txt"); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferedOutputStream(file); // Writes data to the output stream buffer.write(data.getBytes()); // Flushes data to the destination buffer.flush(); System.out.println("Data is flushed to the file."); buffer.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Çıktı
Veriler dosyaya boşaltılır.
Programı çalıştırdığımızda, flush.txt dosyası dize verilerinin temsil ettiği metinle doldurulur.
close () Yöntem
Tamponlu çıktı akışını kapatmak için close()
yöntemi kullanabiliriz . Yöntem çağrıldığında, verileri yazmak için çıktı akışını kullanamayız.
Daha fazla bilgi edinmek için Java BufferedOutputStream'i (resmi Java belgeleri) ziyaret edin.