Schnellstart: Lesen und Schreiben von Dateien
Language: HTML | XAML

Schnellstart: Lesen und Schreiben von Dateien (XAML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Lesen und Schreiben einer Datei mithilfe eines StorageFile-Objekts

Voraussetzungen

Erstellen einer Datei

Die Codeausschnitte in diesem Abschnitt veranschaulichen das Erstellen einer Datei (bzw. das Ersetzen, falls sie bereits vorhanden ist) im lokalen Ordner der App. In den folgenden Codeausschnitten dieses Themas wird ein StorageFile -Objekt mit dem Namen sampleFile verwendet, um auf die geöffnete Datei zu verweisen.


// Create sample file; replace if exists.
StorageFolder folder =
    Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile sampleFile =
    await folder.CreateFileAsync("sample.txt", CreationCollisionOption.ReplaceExisting);


Hinweis  Sie müssen zuerst die Funktion im App-Manifest angeben, bevor Sie Dateien in Bibliotheken erstellen können. Weitere Infos zum Dateizugriff und Funktionen erhalten Sie in Dateizugriff und Berechtigungen und Deklaration der App-Funktionen.
 
Hinweis  Denken Sie daran, das async-Schlüsselwort in der Methodendeklaration aller Methoden anzugeben, in denen Sie den await-Operator verwenden. Weitere Infos finden Sie unter Schnellstart: Aufrufen asynchroner APIs in C# oder Visual Basic.
 

Schreiben in eine Datei

In diesen Schritten wird veranschaulicht, wie Sie in eine Datei schreiben, wenn eine beschreibbare Datei und ein StorageFile vorliegen, das sie darstellt.

Schreiben von Text in eine Datei

Schreiben Sie Text in die Datei, indem Sie die WriteTextAsync-Methoden der FileIO-Klasse aufrufen.

Im Beispiel zum Dateizugriff sehen Sie, wie WriteTextAsync(file, contents) zum Schreiben von beliebigem Text in sampleFile aufgerufen wird:


await Windows.Storage.FileIO.WriteTextAsync(sampleFile, "Swift as a shadow");

Hinweis  Denken Sie daran, das async-Schlüsselwort in der Methodendeklaration aller Methoden anzugeben, in denen Sie den await-Operator verwenden. Weitere Infos finden Sie unter Schnellstart: Aufrufen asynchroner APIs in C# oder Visual Basic.  

Schreiben von Bytes in eine Datei mithilfe eines Puffers

  1. Rufen Sie einen Puffer der Bytes auf, die in die Datei geschrieben werden sollen.

    Beispiel: Das Beispiel zum Dateizugriff ruft ConvertStringToBinary auf, um einen Puffer der Bytes basierend auf einer beliebigen Zeichenfolge abzurufen:

    
    var buffer = Windows.Security.Cryptography.CryptographicBuffer.ConvertStringToBinary(
        "What fools these mortals be", Windows.Security.Cryptography.BinaryStringEncoding.Utf8);
    
    
    
    
  2. Schreiben Sie die Bytes aus dem Puffer in die Datei, indem Sie die WriteBufferAsync-Methode der FileIO-Klasse aufrufen.

    Das Beispiel zum Dateizugriff veranschaulicht, wie Sie mit WriteBufferAsync Bytes aus einem Puffer folgendermaßen in sampleFile schreiben:

    
    await Windows.Storage.FileIO.WriteBufferAsync(sampleFile, buffer);
    
    
    
    Hinweis  Denken Sie daran, das async-Schlüsselwort in der Methodendeklaration aller Methoden anzugeben, in denen Sie den await-Operator verwenden. Weitere Infos finden Sie unter Schnellstart: Aufrufen asynchroner APIs in C# oder Visual Basic.
     

Schreiben von Text in eine Datei mit einem Datenstrom

  1. Öffnen Sie die Datei durch Aufrufen der StorageFile.OpenAsync-Methode. Ein Datenstrom des Dateiinhalts wird zurückgegeben, wenn der Vorgang zum Öffnen abgeschlossen ist.

    Das Beispiel zum Dateizugriff veranschaulicht, wie ein Datenstrom für eine Datei (sampleFile) durch einen Aufruf der StorageFile.OpenAsync-Methode geöffnet wird:

    
    var stream = await sampleFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
    
    
    Hinweis  Denken Sie daran, das async-Schlüsselwort in der Methodendeklaration aller Methoden anzugeben, in denen Sie den await-Operator verwenden. Weitere Infos finden Sie unter Schnellstart: Aufrufen asynchroner APIs in C# oder Visual Basic.
     
  2. Rufen Sie einen Ausgabedatenstrom ab, indem Sie im stream die GetOutputStreamAt-Methode aufrufen. Fügen Sie ihn in eine using-Anweisung ein, um die Lebensdauer des Ausgabedatenstroms zu verwalten.

    
    using (var outputStream = stream.GetOutputStreamAt(0))
    {
                    
        // Add code to use the stream to write to your file
     
    }
    
    
    

    Fügen Sie mit den folgenden Schritten Code in der using-Anweisung hinzu, um in den Ausgabedatenstrom zu schreiben.

    1. Schreiben Sie Text in outputStream, indem Sie ein neues DataWriter-Objekt erstellen und die DataWriter.WriteString-Methode aufrufen.

      
          DataWriter dataWriter = new DataWriter(outputStream);
          dataWriter.WriteString("The DataWriter provides method to write to various types, such as DataTimeOffset.");
      
      
      
    2. Speichern Sie den Text in Ihrer Datei, und schließen Sie den Datenstrom, indem Sie die Methoden writer.StoreAsync und outputStream.FlushAsync aufrufen.

      Das Beispiel zum Dateizugriff veranschaulicht, wie Sie den Text in der Datei speichern und den Datenstrom schließen:

      
          await dataWriter.StoreAsync();
          await outputStream.FlushAsync(); 
      
      
      
      Hinweis  Denken Sie daran, das async-Schlüsselwort in der Methodendeklaration aller Methoden anzugeben, in denen Sie den await-Operator verwenden. Weitere Infos finden Sie unter Schnellstart: Aufrufen asynchroner APIs in C# oder Visual Basic.
       

Sie können das Beispiel zum Dateizugriff herunterladen, um die Codebeispiele im Kontext in den Methoden aufzurufen.

Lesen aus einer Datei

In diesen Schritten wird erläutert, wie Sie aus einer Datei lesen, wenn eine lesbare Datei und ein StorageFile vorliegen, das sie darstellt. Sie können mit der StorageFolder.GetFileAsync-Methode ein StorageFile abrufen, das lesbare Dateien darstellt.


StorageFolder storageFolder =
    Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile sampleFile =
    await storageFolder.GetFileAsync("sample.txt");


Hinweis  Denken Sie daran, das async-Schlüsselwort in der Methodendeklaration aller Methoden anzugeben, in denen Sie den await-Operator verwenden. Weitere Infos finden Sie unter Schnellstart: Aufrufen asynchroner APIs in C# oder Visual Basic.
 

Lesen von Text aus einer Datei

Lesen Sie Text aus einer Datei, indem Sie die ReadTextAsync-Methoden der FileIO-Klasse aufrufen.

Das Beispiel zum Dateizugriff veranschaulicht, wie Sie Text aus einer Datei lesen, indem Sie ReadTextAsync(file) aufrufen, um aus sampleFile zu lesen:



string text = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);


Hinweis  Denken Sie daran, das async-Schlüsselwort in der Methodendeklaration aller Methoden anzugeben, in denen Sie den await-Operator verwenden. Weitere Infos finden Sie unter Schnellstart: Aufrufen asynchroner APIs in C# oder Visual Basic.  

Lesen von Bytes aus einer Datei mit einem Puffer

Lesen Sie Bytes aus dem Puffer Ihrer Datei, indem Sie die ReadBufferAsync-Methode der FileIO-Klasse aufrufen.

Das Beispiel zum Dateizugriff veranschaulicht, wie Sie Bytes aus dem Puffer einer Datei lesen, indem Sie ReadBufferAsync aufrufen:


var buffer = await Windows.Storage.FileIO.ReadBufferAsync(sampleFile);

Hinweis  Denken Sie daran, das async-Schlüsselwort in der Methodendeklaration aller Methoden anzugeben, in denen Sie den await-Operator verwenden. Weitere Infos finden Sie unter Schnellstart: Aufrufen asynchroner APIs in C# oder Visual Basic.  

Verwenden Sie dann ein DataReader-Objekt, um die Länge von buffer und den Inhalt des Puffers zu lesen.



DataReader dataReader = Windows.Storage.Streams.DataReader.FromBuffer(buffer);
string text = dataReader.ReadString(buffer.Length);


Lesen von Text aus einer Datei mit einem Datenstrom

  1. Öffnen Sie einen Datenstrom für die Datei, indem Sie die StorageFile.OpenAsync-Methode aufrufen. Ein Datenstrom des Dateiinhalts wird zurückgegeben, wenn der Vorgang zum Öffnen abgeschlossen ist.

    Das Beispiel zum Dateizugriff veranschaulicht, wie ein Datenstrom zu einer Datei (sampleFile) durch einen Aufruf der StorageFile.OpenAsync-Methode geöffnet wird:

    
    var stream = await sampleFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
    
    
    Hinweis  Denken Sie daran, das async-Schlüsselwort in der Methodendeklaration aller Methoden anzugeben, in denen Sie den await-Operator verwenden. Weitere Infos finden Sie unter Schnellstart: Aufrufen asynchroner APIs in C# oder Visual Basic.
     
  2. Rufen Sie die Größe des Datenstroms zur späteren Verwendung ab.

    
    var size = stream.Size;
    
    
  3. Rufen Sie einen Eingabedatenstrom ab, indem Sie die GetInputStreamAt-Methode von stream aufrufen. Fügen Sie ihn in eine using-Anweisung ein, um die Lebensdauer des Eingabedatenstroms zu verwalten. Geben Sie beim Aufrufen von GetInputStreamAt "0" an, um die Position von inputStream für den Anfang des Datenstroms festzulegen (siehe Beispiel).

    
    using (var inputStream = stream.GetInputStreamAt(0))
    {
        // Add code to use the stream to read your file
        
    }
    
    
    

    Fügen Sie mit den folgenden Schritten Code in der using-Anweisung hinzu, um den Eingabedatenstrom zu lesen.

    1. Rufen Sie ein DataReader-Objekt ab, indem Sie inputStream an den Konstruktor übergeben.

      Das Beispiel zum Dateizugriff veranschaulicht, wie Sie einen DataReader erstellen:

      
      DataReader dataReader = new DataReader(inputStream);
      
      
    2. Lesen Sie den Text, indem Sie die Methoden DataReader.LoadAsync und DataReader.ReadString aufrufen.

      Das Beispiel zum Dateizugriff veranschaulicht, wie Sie Text lesen und sicherstellen, dass der stream nicht leer ist:

      
      uint numBytesLoaded = await dataReader.LoadAsync((uint)size);
      string text = dataReader.ReadString(numBytesLoaded);
      
      
      
      Hinweis  Denken Sie daran, das async-Schlüsselwort in der Methodendeklaration aller Methoden anzugeben, in denen Sie den await-Operator verwenden. Weitere Infos finden Sie unter Schnellstart: Aufrufen asynchroner APIs in C# oder Visual Basic.
       

Sie können das Beispiel zum Dateizugriff herunterladen, um die Codebeispiele im Kontext in den Methoden aufzurufen.

Zusammenfassung und nächste Schritte

Nun sollten Sie mit dem Lesen aus einer und dem Schreiben in eine Datei vertraut sein, wenn ein StorageFile vorliegt, das die Datei darstellt.

Weitere Informationen zur Arbeit mit Bilddateien erhalten Sie in Schnellstart: Image und ImageBrush, Schnellstart: Bildverarbeitung und dem XAML-Bildbeispiel.

Verwandte Themen

Zugreifen auf Daten und Dateien
Schnellstart: Dateizugriff mit Dateiauswahl
Richtlinien und Prüfliste für die Dateiauswahl
Dateizugriff und Berechtigungen
Beispiel zum Dateizugriff
XAML-Bildbeispiel
Referenz
Windows.Storage.StorageFile class
Windows.Storage.Streams.DataReader class
Windows.Storage.Streams.DataWriter class

 

 

Anzeigen:
© 2016 Microsoft