Zum Fußzeileninhalt springen
Iron Academy Logo
Lernen Sie C#
Lernen Sie C#

Andere Kategorien

C# Datei lesen und schreiben

Tim Corey
24m 34s

Dateieingabe- und -ausgabeoperationen (E/A) in C# sind ein wesentlicher Bestandteil vieler Softwareanwendungen, die es Entwicklern ermöglichen, effizient von Dateien zu lesen und in Dateien zu schreiben. Ob Sie Daten speichern, Anwendungsereignisse protokollieren oder große Mengen an Text- oder Binärdaten verarbeiten, C# bietet robuste Werkzeuge für die Arbeit mit Dateien. Im Video von Tim Corey, "C# Data Access: Text Files" bietet er einen detaillierten Überblick über diese Dateioperationen, wobei er sich darauf konzentriert, wie man Textdateien sowohl für die Datenspeicherung als auch für den Datenabruf verwendet. Dieser Artikel fasst die wichtigsten Konzepte und Techniken zusammen, die Tim im Video behandelt, und gibt Ihnen einen praktischen Einblick in die Datei-I/O-Operationen in C#.

Einführung

In C# sind Dateieingabe- und -ausgabeoperationen für das Lesen von und Schreiben in Textdateien unerlässlich. Die File Klasse bietet statische Methoden, um mit vorhandenen Dateien zu interagieren oder neue zu erstellen. StreamReader und StreamWriter werden häufig zum Lesen und Schreiben von Dateien verwendet. StreamReader liest Dateien Zeile für Zeile, sodass Sie auf jede Textzeile oder ein String-Array zugreifen können. Sie können auch die while Schleife verwenden, um größere Dateien effizient zu lesen. Die StreamWriter Klasse wird verwendet, um Daten in eine Datei zu schreiben und unterstützt das Schreiben von Strings und Arrays. Sie kann verwendet werden, um Text zu einer vorhandenen Datei hinzuzufügen oder die gesamte Datei zu überschreiben. Methoden wie WriteLine und WriteText ermöglichen eine einfache Datenmanipulation innerhalb von Textdateien.

Diese Operationen werden typischerweise innerhalb der static void Main Methode durchgeführt, in der Sie den Dateipfad definieren. Zum Beispiel können Sie einen Dateinamen angeben und StreamWriter verwenden, um einen einzelnen String oder ein ganzes String-Array zu schreiben. Die using Anweisung stellt sicher, dass die Datei nach den Operationen ordnungsgemäß geschlossen wird, um Ressourcenlecks zu verhindern. StreamReader kann auch verwendet werden, um Dateien Zeile für Zeile zu lesen, und Ausnahmen können behandelt werden, um potenzielle Fehler zu verwalten, wenn die Datei nicht existiert oder nicht zugänglich ist. Diese Datei-E/A-Fähigkeiten machen C# zu einer ausgezeichneten Wahl für die effiziente und effektive Arbeit mit Dateien.

Tim führt in das Thema ein, indem er die Einfachheit des Lesens aus und Schreibens in Textdateien in C# hervorhebt. Er zeigt, wie ein paar Zeilen Code diese Aufgaben erfüllen können und Textdateien zu einer praktikablen Option für die Datenspeicherung machen.

Erstellen einer Demo-Konsolenanwendung

Tim beginnt mit der Erstellung einer neuen Konsolenanwendung namens "TextFileDataAccessDemo" mit Visual Studio.

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;

namespace TextFileDataAccessDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ReadLine(); // Keeps the console window open to view the output
        }
    }
}
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;

namespace TextFileDataAccessDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ReadLine(); // Keeps the console window open to view the output
        }
    }
}

Er erklärt die Verwendung von Console.ReadLine, um das Konsolenfenster offen zu halten, sodass Benutzer die Ausgabe sehen können.

Lesen aus einer Textdatei

Tim demonstriert, wie man mit der File.ReadAllLines Methode aus einer Textdatei liest. Er zeigt, wie man Dateipfade behandelt und Stringliterale verwendet, um Escape-Zeichen zu vermeiden.

string filePath = @"C:\demos\test.txt";
List<string> lines = File.ReadAllLines(filePath).ToList();
string filePath = @"C:\demos\test.txt";
List<string> lines = File.ReadAllLines(filePath).ToList();

Die File.ReadAllLines Methode liest alle Zeilen aus der angegebenen Datei und gibt sie als String-Array zurück. Tim konvertiert dieses Array in eine Liste, um die Bearbeitung zu erleichtern.

Schreiben in eine Textdatei

Tim erklärt, wie man mit der File.WriteAllLines Methode Daten in eine Textdatei schreibt. Er demonstriert, wie man der Liste neue Zeilen hinzufügt und die aktualisierte Liste in die Datei zurückschreibt.

lines.Add("Sue,Storm,WWIStorm.com");
File.WriteAllLines(filePath, lines);
lines.Add("Sue,Storm,WWIStorm.com");
File.WriteAllLines(filePath, lines);

Dieser Code fügt der Liste einen neuen Eintrag hinzu und schreibt die gesamte Liste zurück in die Datei.

Erstellen eines Datenmodells und dessen Befüllung aus einer Datei

Tim erstellt eine Person Klasse, um die Datenstruktur für jeden Eintrag in der Textdatei darzustellen.

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string URL { get; set; }
}
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string URL { get; set; }
}

Er liest dann die Datei und füllt eine Liste von Person Objekten.

List<Person> people = new List<Person>();
List<string> lines = File.ReadAllLines(filePath).ToList();

foreach (string line in lines)
{
    string[] entries = line.Split(',');
    Person newPerson = new Person
    {
        FirstName = entries[0],
        LastName = entries[1],
        URL = entries[2]
    };
    people.Add(newPerson);
}
List<Person> people = new List<Person>();
List<string> lines = File.ReadAllLines(filePath).ToList();

foreach (string line in lines)
{
    string[] entries = line.Split(',');
    Person newPerson = new Person
    {
        FirstName = entries[0],
        LastName = entries[1],
        URL = entries[2]
    };
    people.Add(newPerson);
}

Dieser Code liest jede Zeile, trennt sie durch Kommas und erstellt ein Person Objekt mit den extrahierten Daten.

Zeichenfolgen-Interpolation

Tim stellt die String-Interpolation vor, eine Funktion in C# 6.0, die das Kombinieren von Variablen und Strings vereinfacht. Diese Methode verwendet das $ Symbol vor dem String und geschweifte Klammern {}, um Variablen direkt innerhalb des Strings einzubetten.

foreach (var person in people)
{
    Console.WriteLine($"{person.FirstName} {person.LastName}: {person.URL}");
}
foreach (var person in people)
{
    Console.WriteLine($"{person.FirstName} {person.LastName}: {person.URL}");
}

Diese Syntax ist kürzer und effizienter im Vergleich zu traditioneller Verkettung unter Verwendung des + Operators.

C# Lesen Schreiben Datei

Datenüberprüfung

Tim betont, wie wichtig die Validierung von Daten beim Lesen aus einer Textdatei ist. Er weist auf die Risiken hin, die entstehen, wenn man von der Struktur der Daten ausgeht, und empfiehlt, die Länge der geteilten Einträge zu überprüfen.

foreach (string line in lines)
{
    string[] entries = line.Split(',');
    if (entries.Length == 3)
    {
        Person newPerson = new Person
        {
            FirstName = entries[0],
            LastName = entries[1],
            URL = entries[2]
        };
        people.Add(newPerson);
    }
    else
    {
        // Handle error
        Console.WriteLine("Invalid data format.");
    }
}
foreach (string line in lines)
{
    string[] entries = line.Split(',');
    if (entries.Length == 3)
    {
        Person newPerson = new Person
        {
            FirstName = entries[0],
            LastName = entries[1],
            URL = entries[2]
        };
        people.Add(newPerson);
    }
    else
    {
        // Handle error
        Console.WriteLine("Invalid data format.");
    }
}

Dadurch wird sichergestellt, dass nur Zeilen mit der richtigen Anzahl von Einträgen verarbeitet werden, um mögliche Laufzeitfehler zu vermeiden.

Hinzufügen von Objekten zu einer Liste

Tim zeigt, wie man neue Objekte zur Liste hinzufügt. Er verwendet eine anonyme Instanz der Person Klasse, um eine neue Person zur Liste hinzuzufügen.

people.Add(new Person { FirstName = "Greg", LastName = "Jones", URL = "WOWT.com" });
people.Add(new Person { FirstName = "Greg", LastName = "Jones", URL = "WOWT.com" });

Dies erstellt und initialisiert ein neues Person Objekt in einer einzigen Zeile, das dann zur people Liste hinzugefügt wird.

Daten in eine Textdatei zurückschreiben

Tim erklärt, wie man die Liste der Person Objekte zurück in die Textdatei schreibt. Er konvertiert die Liste der Person Objekte in eine Liste von Strings, wobei jeder String eine Zeile in der Datei darstellt.

List<string> output = new List<string>();
foreach (var person in people)
{
    output.Add($"{person.FirstName},{person.LastName},{person.URL}");
}
File.WriteAllLines(filePath, output);
List<string> output = new List<string>();
foreach (var person in people)
{
    output.Add($"{person.FirstName},{person.LastName},{person.URL}");
}
File.WriteAllLines(filePath, output);

Dieser Code iteriert über die people Liste, erstellt einen CSV-String für jedes Person Objekt und schreibt die Liste der Strings in die Datei.

Abschluss

Tim Coreys detaillierter Leitfaden zu Datei-E/A-Operationen in C# bietet praktische Einblicke in das Lesen von und Schreiben in Textdateien. Anhand seiner Beispiele können Entwickler Daten mithilfe von Textdateien effektiv verwalten und robuste Datenspeicherlösungen implementieren. Für ein tieferes Verständnis und eine praktische Lernerfahrung empfehle ich Ihnen das Video von Tim Corey, in dem er diese Konzepte anhand von Beispielen aus der Praxis vertieft.

Hero Worlddot related to C# Datei lesen und schreiben
Hero Affiliate related to C# Datei lesen und schreiben

Verdienen Sie mehr, indem Sie teilen, was Sie lieben

Erstellen Sie Inhalte für Entwickler, die mit .NET, C#, Java, Python oder Node.js arbeiten? Verwandeln Sie Ihr Fachwissen in ein zusätzliches Einkommen!

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an