2011-07-27 15 views
50

Mobil cihazlar için .net compact framework 2.0 ile bir uygulama geliştiriyorum. Bir dosyanın içeriğini bir string nesnesine yüklemeye çalışıyorum, ancak bir şekilde bunu başaramıyorum. System.IO.StreamReader sınıfında ReadToEnd() yöntemi yoktur. Bu işlevselliği sağlayan başka bir sınıf var mı?Dosya içeriğini okumak için. Net Compact Framework

+0

Lütfen şimdiye kadar sahip olduğunuz kodu gönderin. – NickHeidke

cevap

96
StringBuilder sb = new StringBuilder(); 
using (StreamReader sr = new StreamReader("TestFile.txt")) 
{ 
    String line; 
    // Read and display lines from the file until the end of 
    // the file is reached. 
    while ((line = sr.ReadLine()) != null) 
    { 
     sb.AppendLine(line); 
    } 
} 
string allines = sb.ToString(); 
+0

Neden bilmiyorum ama File sınıfında ReadAllText yöntemi yok. Hata: 'System.IO.File', 'ReadAllText' için bir tanım içermiyor. Herhangi bir fikir neden? – lng

+0

Yeni anahtar kelimeyi kullanıyor musunuz? Dosyanın bir örneğini oluşturmak ve statik Dosyayı kullanmak iki farklı şeydir. – Jethro

+0

Gönderdiğiniz sırada statik yöntem kullanmaya çalışıyorum. – lng

7
File.ReadAllText(file) Ne arıyorsunuz?

Ayrıca, bir diziye göre satırlara ayrılmasını tercih ederseniz, File.ReadAllLines(file) da vardır.

+0

-1: 'ReadAllText', soruyu sorduğu .NET compact framework'te uygulanmadı. – JohnD

+0

Gerçekten, sanırım yanılmışım. Ancak biraz kafam karışık, çünkü OP'ye göre "ReadToEnd" eksikti ve yine de [.net 2.0 compact var.] (Http://msdn.microsoft.com/en-us/library/System.IO). StreamReader_methods% 28v = vs80% 29.aspx) –

41
string text = string.Empty; 
using (StreamReader streamReader = new StreamReader(filePath, Encoding.UTF8)) 
{    
    text = streamReader.ReadToEnd(); 
} 

Başka bir seçenek:

string[] lines = File.ReadAllLines("file.txt"); 

https://gist.github.com/paulodiogo/9134300

Basit!

+1

Biraz daha basit bir ifade deyiminde orta çizginizi sarmak olacaktır, böylece okuyucunuzda 'Close()' çağırmak zorunda kalmazsınız. Çerçevenin sizin için her şeyi yapmasına izin verin. – krillgar

+1

@krillgar bunu beğendi mi? –

+1

Doğru. Kullanımı sadece 'Close()' yi değil, aynı zamanda kaynakları serbest bırakan 'Dispose()' ı da çağırır. – krillgar

İlgili konular