Kaip skaityti tekstin? fail? naudodami System.IO ir Visual C#

Straipsni? vertimai Straipsni? vertimai
Straipsnio ID: 306777 - Per?i?r?ti ?iame straipsnyje minimus produktus.
Microsoft Visual Basic .NET versijos ?is straipsnis, ?r. 302309.

?is straipsnis nurodo ?iuos Microsoft .NET sistemoje Class Library vard?:
  • System.IO
  • System.Collections
I?pl?sti visus | Sutraukti visus

?iame puslapyje

Santrauka

?iame nuosekliame straipsnyje apra?oma, kaip nuskaityti informacija i? teksto rinkmenos (.txt), ir tada naudoti ArrayList, skirto klas?s nerodyti ?ios informacijos vartotojui.

Reikalavimai

Microsoft Visual C#

Skaityti tekstinius failus ? Visual C#

Atidaryti ir skaityti failus skaityti yra svarbi ?vesties/i?vesties (IO) funkcionalumo, net jei jums nereikia ra?yti su nagrin?jama byla. ?iame pavyzdyje atidaromas failo svarstym?, kuris yra naudingas skaitant tekstinius failus, bet netinka dvejetainius failus. ?iame pavyzdyje vienas i? b?d?, kuriuos galima atidaryti fail?.

Nors daugelis duomen? strukt?ros yra saugoti informacij?, kuri yra gauta i? failo, ArrayList, skirto klas?s tai lengviausias konstrukcija naudoti. Nor?dami atidaryti ir skaityti i? failo, ?iame pavyzdyje objektus i? System.IO vard?, specialiai System.IO.StreamReader klas?s.

Pastaba ?is m?ginys reikalauja tam tikros formos teksto (.txt) failo i? kuri? skaityti.

?kelti ir perskaityti teksto fail? i? Visual C#, atlikite ?iuos veiksmus:
  1. Paleisti Microsoft Visual Studio.
  2. Kurti nauj? konsol?s program?, Visual C#. Visual Studio sukuria Statinis klas?s jums, kartu su tu??ia Main() proced?r?.
  3. Patikrinkite, ar kad projekto nuorodos bent sistemos vard?. Naudojant sakin? naudokite d?l sistemos, System.IOir System.Collections vard?, kad jums nereikia gauti deklaracij? i? ?i? vard? vëliau savo kod?. Turite naudoti ?iuos teiginius prie? kit? deklaracij?.
    using System;
    using System.IO;
    using System.Collections;
    					
  4. Atidaryti fail?, skaityti, kurti nauj? egzempliori? StreamReader objekto ir perduoti failo kelias ? konstruktorius taip:
    StreamReader objReader = new StreamReader("c:\\test.txt");
    					
  5. Turite tur?ti Styga kintamojo, kuriame norite saugoti kiekvien? eilut? ? fail? kaip jums procesas. Nes jums bus prid?ti ?ias eilutes, ArrayList, skirto, paskelbti ir sukurti objekto tipo, taip pat.
    string sLine="";
    ArrayList arrText = new ArrayList();
    					
  6. Yra keletas b?d?, kaip skaityti fail?, ?skaitant ReadToEnd metodas, kuris nuskaito vis? fail? vienu metu. Ta?iau, pavyzd?iui, jums naudoti ReadLine metodas, pareik?ti fail? vienoje linijoje vienu metu. Kai bus pasiekta failo pabaiga, ?is metodas gr??ina null, kuri numato galimyb? nutraukti savo linijos. Kaip j?s skaitote kiekvien? eilut? i? failo, galite prid?ti metodas ArrayList, skirto ?terpti eilutes ? j?s? ArrayList, skirto klas?s.
    while (sLine != null)
    {
    	sLine = objReader.ReadLine();
    	if (sLine != null)
    		arrText.Add(sLine);
    }
    objReader.Close();
    					
  7. Naudoti kiekvienam kilpa ra?yti savo naujai ?daryti ArrayList, skirto turin? ? konsol? taip:
    foreach (string sOutput in arrText)
    	Console.WriteLine(sOutput);
    Console.ReadLine();
    					
  8. ?ra?yti ir paleisti savo kod?, kuris sukuria s?ra?? konsol?s failo.

U?baigti kod? s?ra??

using System;
using System.IO;
using System.Collections;

namespace TextFileReader_csharp
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Class1
	{
		static void Main(string[] args)
		{
			StreamReader objReader = new StreamReader("c:\\test.txt");
			string sLine="";
			ArrayList arrText = new ArrayList();

			while (sLine != null)
			{
				sLine = objReader.ReadLine();
				if (sLine != null)
					arrText.Add(sLine);
			}
                        objReader.Close();

			foreach (string sOutput in arrText)
				Console.WriteLine(sOutput);
			Console.ReadLine();
		}
	}
}
				

Trik?i? ?alinimas

Yra keletas dalyk?, kuriuos reikia ?inoti, kai dirbate su failu i/o, ?skaitant ?iuos elementus:
  • Bet kada prieiti prie failo, yra galimyb?, kad failas, kur? bandote skaityti ar ra?yti negali b?ti sistemos arba gali b?ti naudojamas.
  • ?iame pavyzdyje skaito vis? fail? ? atminties prie? j? apdoroja fail?. Galite susidurti su situacija, kurioje failas yra per didelis, kad vyksta atminties, arba j?s neturite teisi? failui pasiekti.
Vis? ?i? situacij? sukelti i?imtis pakilti. Tai visada geros praktikos teikti pabandyti... sugavimo blok? tvarkyti ?i? bendr? klausim?.

Savyb?s

Straipsnio ID: 306777 - Paskutin? per?i?ra: 2013 m. bir?elio 7 d. - Per?i?ra: 1.0
Taikoma:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
Rakta?od?iai: 
kbcollections kbhowtomaster kbio kbmt KB306777 KbMtlt
Atliktas automatinis vertimas
SVARBU: ?is straipsnis i?verstas naudojant ?Microsoft? ma?ininio vertimo programin? ?rang? ir gali b?ti pataisytas naudojant ?Community Translation Framework? (CTF) technologij?. ?Microsoft? si?lo ma?inos i?verstus ir po to bendruomen?s suredaguotus straipsnius, taip pat ?mogaus i?verstus straipsnius siekdama suteikti prieig? prie vis? savo ?ini? baz?s straipsni? daugeliu kalb?. Ma?inos i?verstuose ir v?liau paredaguotuose straipsniuose gali b?ti ?odyno, sintaks?s ir / arba gramatikos klaid?. ?Microsoft? neatsako u? jokius netikslumus, klaidas arba ?al?, patirt? d?l neteisingo turinio vertimo arba m?s? klient? naudojimosi juo. Daugiau apie CTF ?r. http://support.microsoft.com/gp/machine-translation-corrections.
Spustel?kite ?ia, nor?dami pamatyti ?io straipsnio versij? angl? kalba: 306777

Pateikti atsiliepim?

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com