Atılması streamreader akışı kapanır?
Yazmak için yöntemler için bir akış gönderiyorum ve bu yöntemleri ikili okuyucu/wrtier kullanıyorum. Okuyucu/yazar, ya da using
tarafından veya sadece referans değil elden alır, akışı da kapalı mı??
Şimdi/Yazar gönderirdim, ama çok bir StreamReader kullanıyorum (belki etrafında gitmeliyim. Sadece GetLine ve Seçeneği) için kullanıyorum. Bu akış her zaman bir yazar kapanırsa oldukça zahmetli/okuyucu kapalı alır.
CEVAP
Evet, StreamReader
, StreamWriter
, BinaryReader
ve BinaryWriter
yakın Dispose
çağırdığınızda kendi temel akarsu onları bertaraf edin/. Onlaryokeğer okuyucu/yazıcı sadece çöp olsa tahsil edilirse akışı atın - her zaman okuyucu/yazıcı, tercihen using
ifadesi ile atmanız gerekir. (Aslında, bu sınıfların hiçbiri ne olmalıdır sonlandırıcı var.)
Şahsen akışı için kullanan bir deyim olarak tercih ederim. Diş teli olmadan using
açıklamaları oldukça düzgün bir şekilde yerleştirebilirsiniz:
using (Stream stream = ...)
using (StreamReader reader = new StreamReader(stream, Encoding.Whatever))
{
}
Olsa bile using
deyimi için akış biraz gereksiz (sürece StreamReader
yapıcı bir istisna atar) düşünün bu en iyi uygulama olarak da varsa o zaman kurtulmak StreamReader
ve akımı doğrudan bir sonraki tarih olacak var zaten bertaraf anlambilim.
Java 8'In Akışı ile İsteğe bağlı ...
Tipik Angular.js iş akışı ve proje yap...
İş akışı istatistiksel analiz ve rapor...
Bir outputstream için bir giriş akışı ...
Nasıl bir dizi akışı oluşturabilir miy...