Professional C #
Cine ar trebui să citească această carte
Principalele teme ale cărții
.NET Framework oferă un nou mediu în care să se dezvolte aproape orice aplicație, care funcționează sub Windows, și limbajul C # - un nou limbaj de programare special conceput pentru a lucra cu .NET.
Această carte prezintă toate conceptele de bază ale limbajului C # și platforma .NET. descrie pe deplin C # sintaxa, exemple de diferite tipuri de aplicații în construcții folosind C # - crearea de aplicații și servicii Windows, aplicații și servicii WWW atunci când prin ASP.NET, precum și elemente de Windows și de management WWW consideră bibliotecile clasa comune .NET, în special, accesul la date cu ADO.NET și acces la Active Directory utilizând clase DirectoryServices.
Această carte este destinat pentru dezvoltatorii cu experiență ar putea avea experienta de programare VB, C ++ sau Java, dar niciodată înainte de văzut în lucrarea sa limbajul C # și platforma .NET. Programatorii de a utiliza tehnologia modernă, cartea oferă o imagine completă a modului de a scrie programe în C # pentru platforma .NET.
• Toate caracteristicile limbajului C #
• C # și programarea orientată pe obiecte
• Aplicații și servicii pentru Windows
• Crearea unei pagini web și servicii bazate pe web folosind ASP NET
• Accesul la date folosind ADO NET
• Crearea de aplicatii distribuite folosind NET Remoting
• Integrarea cu COM, COM +, și Serviciul Active Directory
Book: C # pentru profesioniști. Volumul II
clasa StreamReader
Ai nevoie pentru a determina ce să facă cu metodele de codare diferite. Puteți da instrucțiuni pentru a verifica markeri bitilor cod de StreamReader în fișierul pentru a afla metoda de codificare, sau pur și simplu puteți comanda StreamReader presupunem că fișierul utilizează o metodă de codificare specifică.
În loc de numele unui fișier pentru citire, vă poate oferi un link către celălalt fir.
Această ultimă posibilitate merită discuții suplimentare, după cum ilustrează un alt studiu beneficiu de citire și scriere model de date în jurul conceptului de fire. Ca StreamReader operează la un nivel relativ ridicat, poate fi utilă într-o situație în care există un alt fir care citește datele dintr-o altă sursă, de a folosi instrumentele oferite StreamReader pentru procesarea acestui flux ca și în cazul în care conținea text. Acest lucru se poate face prin trecerea de ieșire din acest flux în StreamReader. Astfel, StreamReader poate fi utilizat pentru citirea datelor și de prelucrare a datelor din orice sursă, nu doar fișiere. Aceasta este, în esență situația, care au fost luate în considerare anterior în ceea ce privește clasa BinaryReader. Cu toate acestea, în această carte vom folosi StreamReader numai pentru conectare directă la fișierele.
Datorită acestor caracteristici StreamReader are un număr mare de designeri. În plus, există câteva metode Fileinfo. care se întorc, de asemenea, link-uri la StreamReader. OpenText () și CreateText (). Aici vom ilustra câteva dintre designeri.
Cel mai simplu Constructorul ia doar numele fișierului. Acest StreamReader va verifica markeri de cod octet pentru a determina codificarea:
StreamReader sr = new StreamReader (@ "C: DocumentsReadMe.txt mea");
Pe de altă parte, în cazul în care este de dorit să se determine dacă se presupune codarea UTF8:
StreamReader sr = new StreamReader (@ "C: DocumentsReadMe.txt mea", Encoding.UTF8Encoding);
Definim de codificare, folosind una din mai multe proprietăți ale clasei, System.Text.Encoding. Această clasă este o clasă de bază abstractă din care se determină o serie de clase care implementează metode, de fapt, realizează codificarea textului. Fiecare proprietate returneaza o instanta a clasei corespunzatoare. Puteți utiliza următoarele proprietăți:
Exemplul următor prezintă angrenarea cu StreamReader FileStream. Avantajul acestui fapt este că este posibil să se determine în mod clar dacă pentru a crea un fișier de partajare și permisiunile pe care nu se poate face în cazul în care StreamReader leagă direct la dosar:
= FileStream fs
Noul FileStream (@ "C: DocumentsReadMe.txt mea", FileMode.Open,
FileAccess.Read, FileShare.None);
StreamReader sr = new StreamReader (fs);
Pentru acest exemplu, am actualizat. StreamReader care va căuta codul de markeri octet pentru a determina metoda de codificare utilizată, aceasta va face acest lucru în următoarele exemple, care sunt StreamReader exemplu de Fileinfo:
Fileinfo FișierulMeu = new Fileinfo (@ "C: DocumentsReadMe.txt mea");
StreamReader sr = MyFile.OpenText ();
Precum și un FileStream. Închideți întotdeauna StreamReader după utilizare. Imposibilitatea de a face acest lucru va avea ca rezultat în fișierul rămâne blocat pentru alte procese (în cazul în care numai pentru a crea un StreamReader nu este utilizat cu specificația FileStream FileShare.ShareReadWrite).
Acum ne-am mutat la problema de a crea o instanță a unui StreamReader. La fel ca și cu filestream de clasă. indicăm pur și simplu, diferitele moduri de citire a datelor și frunze altele, mai puțin frecvent utilizate, un StreamReader Metode pentru documentația MSDN.
Poate cel mai simplu este de a utiliza metoda readline (). care continuă lectura până când ajunge la capătul liniei. Aceasta nu include combinația de retur de car-line de traducere, care marchează sfârșitul liniei în șirul returnat:
string NextLine = sr.ReadLine ();
Alternativa - captura întreaga restul fișierului (sau, strict vorbind, echilibru debit) într-un rând:
string RestOfStream = sr.ReadToEnd ();
De asemenea, este posibil să se citească un singur caracter:
int NextChar = sr.Read ();
Această construcție cu citire () convertește caractere pentru a reveni în int. Acest lucru se face pentru că există o posibilitate de întoarcere alternativă -1 dacă se ajunge la sfârșitul fluxului.
În cele din urmă, puteți citi un număr specificat de caractere într-o matrice folosind un offset:
// citit 100 de caractere
int nChars = 100;
chr [] CharArray = new char [nChars];
int nCharsRead = sr.Read (CharArray, 0, nChars);
nCharsRead să fie mai puțin nChars. în cazul în care cererea de citire va necesita mai multe caractere decât sunt lăsate în fișierul.