Wie Sie lesen und Schreiben in eine Textdatei mithilfe von Visual c#

Artikel-ID: 816149 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser schrittweise aufgebaute Artikel beschreibt die lesen und Schreiben in eine Textdatei mithilfe von Visual c#.

Voraussetzungen

Die folgende Liste führt die empfohlene Hardware, Software, Netzwerkinfrastruktur und Servicepacks, die Sie benötigen:
  • Visual c#
In diesem Artikel wird davon ausgegangen, dass Sie mit den folgenden Themen vertraut sind:
  • Visual c#

Lesen und Schreiben von Textdateien

Read a Text File Abschnitt dieses Artikels beschreibt, wie die StreamReader -Klasse zum Lesen der Textdatei verwendet. Das Write a Text File (Example 1) und das Write a Text File (Example 2) Abschnitten beschrieben, wie die StreamWriter -Klasse verwendet, um Text in eine Datei zu schreiben.

Lesen einer Textdatei

Der folgende Code verwendet die StreamReader -Klasse öffnen, lesen und die Textdatei zu schließen. Sie können den Pfad einer Textdatei an den Konstruktor StreamReader zum Öffnen der Datei automatisch übergeben. Die ReadLine -Methode liest jede Textzeile und den Dateizeiger an der nächsten Zeile erhöht, wie es liest. Wenn die ReadLine -Methode das Ende der Datei erreicht, wird ein null-Verweis.
  1. Erstellen Sie eine Beispiel-Textdatei in Editor. Gehen Sie hierzu folgendermaßen vor:
    1. Fügen Sie folgenden Text im Editor:
      hello world
    2. Speichern Sie die Datei als Sample.txt.
  2. Starten Sie Microsoft Visual Studio.
  3. Zeigen im Menü Datei auf neu , und klicken Sie dann auf Projekt .
  4. Klicken Sie unter Projekttypen auf Visual C#-Projekte , und klicken Sie dann unter Vorlagen auf Konsolenanwendung

    Hinweis: Klicken Sie in Visual Studio 2005 oder Visual Studio 2008 auf Visual c# unter Projekttypen , und klicken Sie dann unter Vorlagen auf Konsolenanwendung .
  5. Fügen Sie den folgenden Code am Anfang der Datei Class1.cs:
    using System.IO;
    Hinweis In Visual Studio 2005 oder Visual Studio 2008, die standardmäßige Datei Program.cs ist.
  6. Fügen Sie der Main -Methode den folgenden Code:
    String line;
    try 
    			{
    				//Pass the file path and file name to the StreamReader constructor
    				StreamReader sr = new StreamReader("C:\\Sample.txt");
    
    				//Read the first line of text
    				line = sr.ReadLine();
    
    				//Continue to read until you reach end of file
    				while (line != null) 
    				{
    					//write the lie to console window
    					Console.WriteLine(line);
    					//Read the next line
    					line = sr.ReadLine();
    				}
    
    				//close the file
    				sr.Close();
    				Console.ReadLine();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
       finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    
  7. Klicken Sie im Debug auf Starten , zum Kompilieren und zum Ausführen der Anwendung. Drücken Sie EINGABETASTE, um das Konsolenfenster zu schließen. Das Konsolenfenster zeigt den Inhalt der Sample.txt Datei.
    Hello world

Schreiben einer Textdatei (Beispiel 1)

Der folgende Code verwendet die StreamWriter -Klasse öffnen, schreiben und die Textdatei zu schließen. In ähnlicher Weise auf die StreamReader -Klasse können Sie den Pfad einer Textdatei an den StreamWriter -Konstruktor zum Öffnen der Datei automatisch übergeben. Die WriteLine -Methode schreibt eine vollständige Textzeile in die Textdatei.
  1. Starten Sie Visual Studio.
  2. Zeigen im Menü Datei auf neu , und klicken Sie dann auf Projekt .
  3. Klicken Sie unter Projekttypen auf Visual C#-Projekte , und klicken Sie dann unter Vorlagen auf Konsolenanwendung .

    Hinweis: Klicken Sie in Visual Studio 2005 oder Visual Studio 2008 auf Visual c# unter Projekttypen , und klicken Sie dann unter Vorlagen auf CLR-Konsolenanwendung .
  4. Fügen Sie den folgenden Code am Anfang der Datei Class1.cs:
    using System.IO;
  5. Fügen Sie der Main -Methode den folgenden Code:
    try 
    			{
    
    				//Pass the filepath and filename to the StreamWriter Constructor
    				StreamWriter sw = new StreamWriter("C:\\Test.txt");
    
    				//Write a line of text
    				sw.WriteLine("Hello World!!");
    
    				//Write a second line of text
    				sw.WriteLine("From the StreamWriter class");
    
    				//Close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
  6. Klicken Sie im Debug auf Starten , zum Kompilieren und zum Ausführen der Anwendung. Dieser Code erstellt eine Datei mit dem Namen Test.txt auf Laufwerk c: Öffnen Test.txt in einem Texteditor wie Editor. Test.txt enthält zwei Textzeilen:
    Hello World!!
    From the StreamWriter class
    

Schreiben einer Textdatei (Beispiel 2)

Der folgende Code verwendet die StreamWriter -Klasse öffnen, schreiben und die Textdatei zu schließen. Im Gegensatz zum vorherigen Beispiel übergibt diesen Code zwei zusätzliche Parameter an den Konstruktor. Der erste Parameter ist der Pfad und den Dateinamen der Datei. Der zweite Parameter, true gibt an, dass die Datei geöffnet ist im append-Modus. Wenn Sie für den zweiten Parameter False angeben, werden der Inhalt der Datei jedes Mal überschrieben Sie den Code ausführen. Der dritte Parameter gibt Unicode , damit StreamWriter die Datei im Unicode-Format codiert. Sie können auch die folgenden Codieren Methoden für den dritten Parameter angeben:
  • ASC11
  • Unicode
  • UTF7
  • UTF8
Die Write -Methode ähnelt die WriteLine -Methode, außer dass die Write -Methode nicht automatisch einen Wagenrücklauf bettet oder Zeilenvorschub (CR/LF) Zeichen Kombination. Dies ist nützlich, wenn ein Zeichen zu einem Zeitpunkt geschrieben werden soll.
  1. Starten Sie Visual Studio.
  2. Zeigen im Menü Datei auf neu , und klicken Sie dann auf Projekt .
  3. Klicken Sie unter Projekttypen auf Visual C#-Projekte , und klicken Sie dann unter Vorlagen auf Konsolenanwendung

    Hinweis: Klicken Sie in Visual Studio 2005 oder Visual Studio 2008 Visual c# unter auf Projekttypen , und klicken Sie dann unter Vorlagen auf Konsolenanwendung
  4. Fügen Sie den folgenden Code am Anfang der Datei Class1.cs :
    using System.IO;
    using System.Text;
    Hinweis In Visual Studio 2005 oder Visual Studio 2008, die Standarddatei ist Program.cs.
  5. Fügen Sie der Main -Methode den folgenden Code:
    Int64 x;
    
    			try 
    			{
    				//Open the File
    				StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);
    
    				//Writeout the numbers 1 to 10 on the same line.
    				for(x=0; x < 10; x++)
    				{
    					sw.Write(x);
    				}
    
    				//close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
  6. Klicken Sie im Debug auf Starten , zum Kompilieren und zum Ausführen der Anwendung. Dieser Code erstellt eine Datei mit dem Namen Test1.txt auf Laufwerk c: Öffnen Test1.txt in einem Texteditor wie Editor. Test1.txt enthält eine einzelne Textzeile:
    0123456789

Vollständige Codeauflistung

  • Lesen eine Textdatei
    //Read a Text File
    using System;
    using System.IO;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args)
    		{
    		
    			String line;
    
    		try 
    			{
    				//Pass the file path and file name to the StreamReader constructor
    				StreamReader sr = new StreamReader("C:\\Sample.txt");
    
    				//Read the first line of text
    				line = sr.ReadLine();
    
    				//Continue to read until you reach end of file
    				while (line != null) 
    				{
    					//write the lie to console window
    					Console.WriteLine(line);
    					//Read the next line
    					line = sr.ReadLine();
    				}
    
    				//close the file
    				sr.Close();
    				Console.ReadLine();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }
    
  • Schreiben einer Textdatei (Version 1)
    //Write a text file - Version-1
    using System;
    using System.IO;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args) 
    		{
    			try 
    			{
    
    				//Pass the filepath and filename to the StreamWriter Constructor
    				StreamWriter sw = new StreamWriter("C:\\Test.txt");
    
    				//Write a line of text
    				sw.WriteLine("Hello World!!");
    
    				//Write a second line of text
    				sw.WriteLine("From the StreamWriter class");
    
    				//Close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }
  • Schreiben einer Textdatei (Version 2)
    //Write a text file  - Version 2
    using System;
    using System.IO;
    using System.Text;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args) 
    		{
    		   
    			Int64 x;
    
    			try 
    			{
    				//Open the File
    				StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);
    
    				//Writeout the numbers 1 to 10 on the same line.
    				for(x=0; x < 10; x++)
    				{
    					sw.Write(x);
    				}
    
    				//close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }

Problembehandlung

Alle Datei-Manipulationen ist es guter Programmierstil, den Code in einem Try-Catch-finally -Block, Fehler und Ausnahmen behandeln umbrochen. Insbesondere sollten Sie die Ziehpunkte, um die Datei in den letzten Block freigeben, sodass die Datei nicht unbegrenzt gesperrt ist. Einige mögliche Fehler enthält eine Datei, die nicht vorhanden ist oder eine Datei, die bereits verwendet wird.

Informationsquellen

Weitere Informationen der folgenden Microsoft Developer Network (MSDN)-Website:
StreamReader-Klasse
http://msdn2.microsoft.com/en-us/library/system.io.streamreader(vs.71).aspx

Eigenschaften

Artikel-ID: 816149 - Geändert am: Donnerstag, 17. Mai 2007 - Version: 3.8
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# 2008 Express Edition
Keywords: 
kbmt kbfileio kbconsole kbhowtomaster kbhowto KB816149 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 816149
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns