Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort zur 5. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Weitere .NET-Datentypen
7 Weitere Möglichkeiten von C#
8 Auflistungsklassen (Collections)
9 Fehlerbehandlung und Debugging
10 LINQ to Objects
11 Multithreading und die Task Parallel Library (TPL)
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 Einige wichtige .NET-Klassen
15 Projektmanagement und Visual Studio 2010
16 XML
17 WPF – Die Grundlagen
18 WPF-Containerelemente
19 WPF-Steuerelemente
20 Konzepte der WPF
21 Datenbindung
22 2D-Grafik
23 ADO.NET – verbindungsorientierte Objekte
24 ADO.NET – Das Command-Objekt
25 ADO.NET – Der SqlDataAdapter
26 ADO.NET – Daten im lokalen Speicher
27 ADO.NET – Aktualisieren der Datenbank
28 Stark typisierte DataSets
29 LINQ to SQL
30 Weitergabe von Anwendungen
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual C# 2010 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2010

Visual C# 2010
geb., mit DVD
1295 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1552-7
Pfeil 12 Arbeiten mit Dateien und Streams
Pfeil 12.1 Namespaces der Ein- bzw. Ausgabe
Pfeil 12.1.1 Das Behandeln von Ausnahmen bei E/A-Operationen
Pfeil 12.2 Laufwerke, Verzeichnisse und Dateien
Pfeil 12.2.1 Die Klasse »File«
Pfeil 12.2.2 Die Klasse »FileInfo«
Pfeil 12.2.3 Die Klassen »Directory« und »DirectoryInfo«
Pfeil 12.2.4 Die Klasse »Path«
Pfeil 12.2.5 Die Klasse »DriveInfo«
Pfeil 12.2.6 Die Klasse »SpecialDirectories«
Pfeil 12.3 Die »Stream«-Klassen
Pfeil 12.3.1 Die abstrakte Klasse »Stream«
Pfeil 12.3.2 Die von »Stream« abgeleiteten Klassen im Überblick
Pfeil 12.3.3 Die Klasse »FileStream«
Pfeil 12.4 Die Klassen »TextReader« und »TextWriter«
Pfeil 12.4.1 Die Klasse »StreamWriter«
Pfeil 12.4.2 Die Klasse »StreamReader«
Pfeil 12.5 Die Klassen »BinaryReader« und »BinaryWriter«
Pfeil 12.5.1 Komplexe binäre Dateien

12 Arbeiten mit Dateien und Streams

Das .NET Framework bietet eine Klassenbibliothek, die in Namespaces organisiert ist. Jeder Namespace beschreibt eine zusammenhängende oder zumindest doch verwandte Thematik. Mit Daten zu operieren, egal ob man Daten schreibt oder liest, steht im Zusammenhang mit Dateien. Daher ist es auch nicht verwunderlich, dass sich die wichtigsten Klassen, die mit Dateien und Datenoperationen zu tun haben, in einem Namespace wiederfinden: System.IO.

Wollte man ein kurzes, allgemein gehaltenes Inhaltsverzeichnis von System.IO angeben, müsste dieses drei Hauptabschnitte umfassen:

  • Klassen, die ihre Dienste auf der Basis von Dateien und Verzeichnissen anbieten
  • Klassen, die den Datentransport beschreiben
  • Ausnahmeklassen

Der Schwerpunkt liegt wohl eher auf den Klassen, die durch Punkt 2 beschrieben werden, und geht weit über die Operationen hinaus, die im direkten Zusammenhang mit Dateien stehen. Daraus resultiert letztendlich auch die Namensangabe des Namespace IO für Input/Output-Operationen oder, wie es auch sehr häufig in der deutschen Übersetzung lautet, E/A-Operationen (für die Ein- und Ausgabe).

In diesem Kapitel geht es primär darum, Dateninformationen aus einer beliebigen Datenquelle zu holen und an ein beliebiges Ziel zu schicken. Meist sind sowohl die Quelle als auch das Ziel eines Datenstroms Dateien, aber es kann auch noch ganz andere Anfangs- und Endpunkte geben, beispielsweise:

  • eine Benutzeroberfläche
  • Netzwerkverbindungen
  • Speicherblöcke
  • Drucker
  • andere Peripheriegeräte

In höheren Programmiersprachen wird ein Datenfluss als Stream bezeichnet. Ein Stream hat einen Anfangs- und einen Endpunkt: eine Quelle, an der der Datenstrom entspringt, und das Ziel, das den Datenstrom empfängt. Die Methoden Console.WriteLine und Console.ReadLine, mit denen wir praktisch schon von der ersten Seite dieses Buches an arbeiten, erzeugen auch solche Datenströme.

Abbildung 12.1 Datenströme einer lokalen Arbeitsstation

Streams haben bestimmte Charakteristika. Das ist auch der Grund, weshalb es nicht nur eine Stream-Klasse gibt, sondern mehrere. Jeder Stream dient ganz speziellen Anforderungen und kann diese mehr oder weniger gut erfüllen. Beispielsweise gibt es Streams, deren Daten direkt als Text interpretiert werden, während andere nur Bytesequenzen transportieren, die der Empfänger erst in das richtige Format bringen muss, um den Inhalt zu interpretieren.

Ein Stream ist nicht dauerhaft: Er wird geöffnet und liest oder schreibt Daten. Nach dem Schließen sind die Daten verloren, wenn sie nicht von einem Empfänger, beispielsweise einer Datei, dauerhaft gespeichert werden.


Galileo Computing - Zum Seitenanfang

12.1 Namespaces der Ein- bzw. Ausgabe Zur nächsten ÜberschriftZur vorigen Überschrift

Die elementarsten Klassen für die Dateiein- und -ausgabe sind im Namespace System.IO organisiert. Es sollte nicht unerwähnt bleiben, dass die .NET-Klassenbibliothek mit weiteren Namespaces aufwartet, die Klassen für besondere Aufgaben bereitstellen:

  • Im Namespace System.IO.Compression werden mit DeflateStream und GZipStream zwei Klassen angeboten, die Methoden und Eigenschaften zur Datenkomprimierung bzw. Datendekomprimierung bereitstellen.
  • Mit den Klassen des Namespace System.IO.IsolatedStorage wird eine Art virtuelles Dateisystem beschrieben. Dieses ermöglicht die Speicherung von Einstellungen und Temporärdaten, die mit der Anwendung eindeutig verknüpft sind. Typischerweise werden im isolierten Speicher Daten abgelegt, die ansonsten beispielsweise in der Registry gespeichert werden müssten. Das Besondere dabei ist, dass weniger vertrauenswürdiger Code nicht auf die Daten zugreifen kann, die sich im isolierten Speicher befinden.
  • Streams müssen nicht zwangsläufig mit Dateien oder Verzeichnissen in direktem Zusammenhang stehen, sondern beschreiben Datenströme in allgemeiner Form. Wenn Sie die serielle Schnittstelle programmieren wollen, werden Sie daher auch auf die Methoden und Eigenschaften der Klassen im Namespace System.IO.Ports zurückgreifen müssen.

Galileo Computing - Zum Seitenanfang

12.1.1 Das Behandeln von Ausnahmen bei E/A-Operationen topZur vorigen Überschrift

Bei fast allen Dateioperationen kann es zur Laufzeit eines Programms aus den verschiedensten Gründen sehr schnell dazu kommen, dass Ausnahmen ausgelöst werden: Die zu kopierende Datei wird im angegebenen Pfad nicht gefunden, das Zielverzeichnis existiert nicht, als Quelle oder Ziel wird ein Leerstring übergeben usw. Daher sollten Sie unbedingt darauf achten, eine Fehlerbehandlung zu implementieren. Die Dokumentation unterstützt Sie, wenn es darum geht, auf mögliche Fehler zu reagieren, denn es werden alle Ausnahmen aufgeführt, die beim Aufruf einer Methode auftreten könnten.

Alle Ausnahmen im Zusammenhang mit E/A-Operationen werden auf eine gemeinsame Basis zurückgeführt: IOException. Sie sollten auch diesen allgemeinen Fehler immer behandeln, damit der Anwender nicht Gefahr läuft, durch eine unberücksichtigte Ausnahme die Laufzeitumgebung des Programms unfreiwillig zu beenden.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual C# 2010

Visual C# 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: C/C++






 C/C++


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2010
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern