Stream Nedir? StringBuffer ile StringBuilder arasındaki Fark Nedir?

Öncelikle Stream nedir sorusuna yanıt verelim. Stream’ ler veri akışı için kullanılmaktadır. Stream’lerde bir veri okumak için InputStream, bir veri yazmak için OutputStream kullanılır. Stream’ler her türlü aygıta bağlanıp veri alabilme ve aktarabilme özelliğine sahiptirler. Bu noktada bir açıklama yapmak gerekir. Streamler sadece dosyadan veri okuyup dosyaya veri yazmak için kullanılmazlar. Kısacası Stream’ler genel bir veri akışını sağlayan sınıftır diyebiliriz.

Stream’ler Binary ve Character olarak ikiye ayrılmaktadır. Binary Streamler verileri 2' li sistemde (1 ve 0) olarak, character Stream’ ler ise bildiğimiz karakterle okumakta ve yazmaktadırlar.

Genel olarak Stream hiyerarşisi aşağıdaki gibidir.

Stream’ lerde genel olarak kullanılan methodlar;

canRead(); // Okunabilir bir dosya ise true, değilse false değeri dönderir.

canWrite(); // Yazılabilir bir dosya ise true, değilse false değeri dönderir.

getName(); // Dosyanın ismini dönderir.

getPath(); //Dosya adresini dönderir.

isDirectory(); // path klasörse true değilse false değeri döner.

isFile(); // dosya ise true değilse false dönderir.

StringBuilder, StringBuffer’ a göre daha hızlıdır. Çünkü StringBuilder senkronize değildir. Fakat StringBuffer senkronizedir.

StringBuid’ ler StringBuffer’a göre daha verimlidir.

StringBuffer’ da thread Safe mantığı vardır. Fakat StringBuidler’ da bu özellik yoktur. StringBuffer çok yavaştır fakat güvenilirdir. StringBuilder hızlıdır fakat thread safe olmadığı için güvenli değildir.

String’ ler immutable’dir (değişmez). Fakat StringBuffer ve StringBuilder ise mutable’ dır. (değişebilir)


Originally published at medium.com on October 9, 2016.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.