Jak odczytywać plik tekstowy za pomocą przestrzeni nazw System.IO i Visual C#

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 306777 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Wersja tego artykułu do programu Microsoft Visual Basic .NET dla 302309.

W tym artykule odnosi się do następujących nazw biblioteki klas.NET Framework firmy Microsoft:
  • System.IO
  • System.Collections
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

W tym artykule krok po kroku pokazano, jak pobierać informacje z pliku tekstowego (.txt), a następnie użyć klasy ArrayList, aby wyświetlić te informacje.

Wymagania

Program Microsoft Visual C#

Odczyt plików tekstowych w środowisku Visual C#

Otwieranie i odczyt plików dla dostępu do odczytu jest ważną częścią funkcji wejścia/wyjścia (We/Wy), nawet jeśli nie trzeba zapisać w pliku. W tym przykładzie otwiera plik do odczytu, co jest przydatne do odczytywania plików tekstowych, ale nieodpowiednie dla plików binarnych. W tym przykładzie wykorzystuje jedną z wielu metod, które są dostępne do otwierania pliku.

Chociaż wiele struktur danych są dostępne do przechowywania informacji, które są pobierane z pliku, ArrayList klasy jest najprostszym strukturę, aby użyć. Aby otworzyć i odczytać z pliku, w tym przykładzie użyto obiektów z obszaru nazw System.IO , w szczególności klasy System.IO.StreamReader .

Uwaga Próbka ta wymaga pewnego rodzaju plików tekstowych (.txt), z którego można odczytać.

Aby załadować i odczytać za pomocą pliku tekstowego z programu Visual C#, wykonaj następujące kroki:
  1. Uruchom program Microsoft Visual Studio.
  2. Tworzenie nowej aplikacji konsoli w środowisku Visual C#. Program Visual Studio utworzy Klasy statycznej , wraz z pustą procedurę Main() .
  3. Zweryfikuj, że projekt odwołuje się co najmniej obszar nazw systemu . Za pomocą instrukcji przy użyciu na obszarach nazw systemu, System.IOi System.Collections tak, że nie należy kwalifikować się deklaracje z tych obszarów nazw w dalszej części kodu. Należy użyć tych instrukcji przed wszelkimi innymi deklaracjami.
    using System;
    using System.IO;
    using System.Collections;
    					
  4. Aby otworzyć pliku do odczytu, utworzyć nowe wystąpienie obiektu TextWriter i przekazać ścieżkę do pliku do konstruktora w następujący sposób:
    StreamReader objReader = new StreamReader("c:\\test.txt");
    					
  5. Musisz mieć zmienną tekstową, w której chcesz przechowywać każdy wiersz pliku podczas przetwarzania. Ponieważ te wiersze będzie dodanie do ArrayList, zadeklarować i utworzyć obiekt tego typu, a także.
    string sLine="";
    ArrayList arrText = new ArrayList();
    					
  6. Istnieje kilka sposobów do odczytu pliku, w tym metodę ReadToEnd , która odczytuje w całym pliku na raz. Jednakże na przykład, można użyć metody ReadLine wnieść w jeden wiersz pliku na raz. Gdy osiągnięty zostanie koniec pliku, Metoda ta zwraca wartość null, co umożliwia kończy się pętli. Każdy wiersz podczas czytania z pliku, można użyć metody AddArrayList , aby wstawić wiersze do swojej klasy ArrayList .
    while (sLine != null)
    {
    	sLine = objReader.ReadLine();
    	if (sLine != null)
    		arrText.Add(sLine);
    }
    objReader.Close();
    					
  7. Za pomocą pętli dla każdego zapisu zawartość z nowo wypełniony ArrayList do konsoli w następujący sposób:
    foreach (string sOutput in arrText)
    	Console.WriteLine(sOutput);
    Console.ReadLine();
    					
  8. Zapisz i uruchom swój kod, który produkuje aukcji Twojego pliku konsoli.

Kompletny kod

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();
		}
	}
}
				

Rozwiązywanie problemów

Istnieje kilka sposobów należy pamiętać podczas pracy z plikiem we/wy, w tym następujące elementy:
  • Dowolnym momencie uzyskać dostęp do pliku, istnieje możliwość, że plik, który próbujesz odczytu lub zapisu nie może być w systemie lub mogą być używane.
  • W tym przykładzie odczytuje całego pliku do pamięci, przed ponownym rozpoczęciem przetwarzania pliku. Może wystąpić sytuacja, w której plik jest zbyt duży, aby być przechowywane w pamięci lub nie masz uprawnień dostępu do tego pliku.
Żadna z tych sytuacji wywołać wyjątek należy podnieść. Zawsze jest dobrą praktyką, aby zapewnić blok try... catch do obsługi tych typowych problemów.

Właściwości

Numer ID artykułu: 306777 - Ostatnia weryfikacja: 9 lutego 2014 - Weryfikacja: 6.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
Słowa kluczowe: 
kbcollections kbhowtomaster kbio kbmt KB306777 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł został przetłumaczony przy użyciu oprogramowania firmy Microsoft do tłumaczenia maszynowego i może być poprawiony przy użyciu technologii Community Translation Framework (CTF). Firma Microsoft udostępnia artykuły tłumaczone maszynowo, poprawione przez społeczność, a także tłumaczone przez tłumaczy profesjonalnych, aby zapewnić dostęp do wszystkich artykułów w bazie wiedzy w wielu językach. Artykuły tłumaczone maszynowo i poprawione mogą zawierać błędy pisowni, składniowe i gramatyczne. Firma Microsoft nie ponosi odpowiedzialności za żadne nieścisłości, błędy ani szkody spowodowane przez niepoprawne tłumaczenia zawartości ani przez korzystanie z niej przez klientów. Więcej o strukturze CTF: http://support.microsoft.com/gp/machine-translation-corrections/pl.
Anglojęzyczna wersja tego artykułu to: 306777

Przekaż opinię

 

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