C#,VB BinaryWriter ile yazma işlemi.

Yusefuyn

Yeni üye
5 Şub 2022
17
25
BinaryWriter vasıtasıyla herhangi bir dosya yazma işlemi yapılabilir ama bunun için bir Stream nesnesine ihtiyaç duyar ki buda StreamWriter ya da FileStream olabilir.
Tabi önce System.IO kütüphanesini projemize dahil ediyoruz.
Örnek bir kullanım aşağıdadır.
mlnjsfo.PNG

Peki neden BinaryWriter ?
Büyük sayılar yazmak istiyorsanız ki yukarıdaki kodda double sayı yazdırdığım kısma bakabilirsiniz. BinaryWriter sayıyı Byte’a çeviriyor ve az yer kaplıyor.Veya true yada false yani bool tipi yazdırmak ister isek yine tek byte'lık veriyi ki ASCII tablosundaki ilk ve ikinci karakteri yazdığını görebilir. StreamWriter ya da FileStream ile yazmış olsaydım yukarıdaki sayı aynen “12312312312312312313123123213” şeklinde yazılacaktı ama “ãçîÅ@äÃE” şeklinde yazıldı ve kapladığı yerde ona göre azaldı. Okuma ve yazma işlemlerinde ise diğer nesneler nazaran yavaştır. Büyük metinler yazdırılacak ise StreamWriter yada FileStream kullanımı daha performans sağlar çünkü BinaryWriter zaten bu iki sınıfı ki en temelde StreamWriter sınıfını kullanarak işlem yapmaktadır.
Yukarıdaki kodun Visual Basic’teki hali
6q1me73.PNG


BinaryWriter objesi ile işimiz bittiğinde Close() metodu tetiklenmez ise WriteStream açık kalır ve aynı Stream üzerinde okuma yazma işlemlerimizde "Akış yazılabilir değil" hatası alınır.
 

Kruvazör

Ar-Ge Ekibi Lideri
28 Mar 2020
1,756
2,604
Liman
Elinize sağlık,
Üç sorum var.
Birincisi:
Binarywriter'ın bir sınırı var mıdır nereye kadar gidiyor bu böyle?

İkincisi: büyük sayı göreceli bir kavram sonuçta. performans açısından hangi durumda binarywriter kullanmalıyım?

Üçüncüsü BinaryWriter kullanılan bir proje/işlem örneği var mı ?

Şimdiden teşekkür ederim cevabınız için :)
 

Yusefuyn

Yeni üye
5 Şub 2022
17
25
İlk olarak yorumunuz için teşekkür ederim.
1. sorunuza tam doğru bir bilgi veremem ama bildiğim kadarıyla dosya yazma okuma işlemlerinde sınır önce ram boyutu sonra harddisk ve en sonda sistemin bize izin verdiği kadar.Nesnenin kendinde bir limit var mı orasını bilmiyorum.
2. Soru için ise evet büyük bir sayı yanlış bir ibare 10 ve 10'dan sonraki 255'e kadar tüm sayılar tek byte ile ifade edileceği için kapladığı boyut konusunda düşüş başlar. Performans konusunda ise veriyi kontrol etme ve byte dönüştürme var mı kontrol edeceğinden normal dosya yazma işlemlerinden biraz performans kaybı söz konusu olabilir.
3. Soru aslında BinaryWriter nesnesi genelde stub builder mantığında olan keylog rat vs. yazılımlarında kullanılıyor. Proje konusunda:
 

Kruvazör

Ar-Ge Ekibi Lideri
28 Mar 2020
1,756
2,604
Liman
İlk olarak yorumunuz için teşekkür ederim.
1. sorunuza tam doğru bir bilgi veremem ama bildiğim kadarıyla dosya yazma okuma işlemlerinde sınır önce ram boyutu sonra harddisk ve en sonda sistemin bize izin verdiği kadar.Nesnenin kendinde bir limit var mı orasını bilmiyorum.
2. Soru için ise evet büyük bir sayı yanlış bir ibare 10 ve 10'dan sonraki 255'e kadar tüm sayılar tek byte ile ifade edileceği için kapladığı boyut konusunda düşüş başlar. Performans konusunda ise veriyi kontrol etme ve byte dönüştürme var mı kontrol edeceğinden normal dosya yazma işlemlerinden biraz performans kaybı söz konusu olabilir.
3. Soru aslında BinaryWriter nesnesi genelde stub builder mantığında olan keylog rat vs. yazılımlarında kullanılıyor. Proje konusunda:
Cevabınız ve örnek proje için çok teşekkür ederim.
kalitenizi konuşturuyorsunuz yine ;)
 

deltaturk

Katılımcı Üye
26 Kas 2020
920
1,005
Green Team Mersin Daire Bşk.
BinaryWriter vasıtasıyla herhangi bir dosya yazma işlemi yapılabilir ama bunun için bir Stream nesnesine ihtiyaç duyar ki buda StreamWriter ya da FileStream olabilir.
Tabi önce System.IO kütüphanesini projemize dahil ediyoruz.
Örnek bir kullanım aşağıdadır.
mlnjsfo.PNG

Peki neden BinaryWriter ?
Büyük sayılar yazmak istiyorsanız ki yukarıdaki kodda double sayı yazdırdığım kısma bakabilirsiniz. BinaryWriter sayıyı Byte’a çeviriyor ve az yer kaplıyor.Veya true yada false yani bool tipi yazdırmak ister isek yine tek byte'lık veriyi ki ASCII tablosundaki ilk ve ikinci karakteri yazdığını görebilir. StreamWriter ya da FileStream ile yazmış olsaydım yukarıdaki sayı aynen “12312312312312312313123123213” şeklinde yazılacaktı ama “ãçîÅ@äÃE” şeklinde yazıldı ve kapladığı yerde ona göre azaldı. Okuma ve yazma işlemlerinde ise diğer nesneler nazaran yavaştır. Büyük metinler yazdırılacak ise StreamWriter yada FileStream kullanımı daha performans sağlar çünkü BinaryWriter zaten bu iki sınıfı ki en temelde StreamWriter sınıfını kullanarak işlem yapmaktadır.
Yukarıdaki kodun Visual Basic’teki hali
6q1me73.PNG


BinaryWriter objesi ile işimiz bittiğinde Close() metodu tetiklenmez ise WriteStream açık kalır ve aynı Stream üzerinde okuma yazma işlemlerimizde "Akış yazılabilir değil" hatası alınır.
Elinize Sağlık
 

JohnWick51

Uzman üye
20 Mar 2022
1,866
770
28
BinaryWriter vasıtasıyla herhangi bir dosya yazma işlemi yapılabilir ama bunun için bir Stream nesnesine ihtiyaç duyar ki buda StreamWriter ya da FileStream olabilir.
Tabi önce System.IO kütüphanesini projemize dahil ediyoruz.
Örnek bir kullanım aşağıdadır.
mlnjsfo.PNG

Peki neden BinaryWriter ?
Büyük sayılar yazmak istiyorsanız ki yukarıdaki kodda double sayı yazdırdığım kısma bakabilirsiniz. BinaryWriter sayıyı Byte’a çeviriyor ve az yer kaplıyor.Veya true yada false yani bool tipi yazdırmak ister isek yine tek byte'lık veriyi ki ASCII tablosundaki ilk ve ikinci karakteri yazdığını görebilir. StreamWriter ya da FileStream ile yazmış olsaydım yukarıdaki sayı aynen “12312312312312312313123123213” şeklinde yazılacaktı ama “ãçîÅ@äÃE” şeklinde yazıldı ve kapladığı yerde ona göre azaldı. Okuma ve yazma işlemlerinde ise diğer nesneler nazaran yavaştır. Büyük metinler yazdırılacak ise StreamWriter yada FileStream kullanımı daha performans sağlar çünkü BinaryWriter zaten bu iki sınıfı ki en temelde StreamWriter sınıfını kullanarak işlem yapmaktadır.
Yukarıdaki kodun Visual Basic’teki hali
6q1me73.PNG


BinaryWriter objesi ile işimiz bittiğinde Close() metodu tetiklenmez ise WriteStream açık kalır ve aynı Stream üzerinde okuma yazma işlemlerimizde "Akış yazılabilir değil" hatası alınır.
TESEKKURLER
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.