Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Dieser Artikel konzentriert sich auf dieFileStream-Klasse in C# und wie es Ihnen hilft, Lese- und Schreibvorgänge auf Dateien durchzuführen. Wir werden praktische Beispiele untersuchen, verstehen, wie FileStream im Kern funktioniert, und lernen, wie man Dateidaten effizient verwaltet. Dieses Handbuch richtet sich an diejenigen, die neu im Umgang mit Dateien in C# sind. Die Sprache bleibt daher einsteigerfreundlich und bietet gleichzeitig detaillierte Anweisungen für die Arbeit mit Dateien in C# und eine Einführung in dieIronPDF-Bibliothek auch.
Die FileStream-Klasse in C# bietet eine Möglichkeit, Dateien mithilfe von Bytes zu verarbeiten. Es funktioniert mit Lese- und Schreiboperationen auf Dateien, so dass Sie direkt mit Dateiinhalten interagieren können. Dies ist besonders nützlich bei der Arbeit mit Dateien für Eingabe-/Ausgabeaufgaben, vor allem bei der Manipulation von Byte-Arrays.
FileStream ist ideal für:
Hier ist ein einfaches Beispiel, um eine Datei zu öffnen, Daten zu schreiben und sie dann mit FileStream zu lesen:
using System;
using System.IO;
public static void Main()
{
string path = "example.txt";
// Creating a FileStream object to handle the file. The file handle is acquired here.
using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.Write))
{
byte[] data = System.Text.Encoding.UTF8.GetBytes("Hello, FileStream!");
fileStream.Write(data, 0, data.Length);
}
// Read from the file
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead = fileStream.Read(buffer, 0, buffer.Length);
string text = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine(text);
}
}
using System;
using System.IO;
public static void Main()
{
string path = "example.txt";
// Creating a FileStream object to handle the file. The file handle is acquired here.
using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.Write))
{
byte[] data = System.Text.Encoding.UTF8.GetBytes("Hello, FileStream!");
fileStream.Write(data, 0, data.Length);
}
// Read from the file
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead = fileStream.Read(buffer, 0, buffer.Length);
string text = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine(text);
}
}
Imports System
Imports System.IO
Public Shared Sub Main()
Dim path As String = "example.txt"
' Creating a FileStream object to handle the file. The file handle is acquired here.
Using fileStream As New FileStream(path, FileMode.Create, FileAccess.Write)
Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes("Hello, FileStream!")
fileStream.Write(data, 0, data.Length)
End Using
' Read from the file
Using fileStream As New FileStream(path, FileMode.Open, FileAccess.Read)
Dim buffer(1023) As Byte
Dim bytesRead As Integer = fileStream.Read(buffer, 0, buffer.Length)
Dim text As String = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead)
Console.WriteLine(text)
End Using
End Sub
Dieses Beispiel zeigt, wie ein FileStream-Objekt erstellt wird, um Lese- und Schreibvorgänge von Dateien zu verarbeiten. Die Klasse FileStream liest und schreibt Bytes direkt, was sie für die Verarbeitung großer Dateien oder binärer Daten geeignet macht. Wir haben Encoding verwendet, um zwischen Text und Bytes zu konvertieren.
Um Daten in eine Datei zu schreiben, verwenden Sie die Methode Write. Hier ist ein Beispiel, das die Funktionsweise genauer erklärt:
using System;
using System.IO;
public static void Main()
{
string path = "output.txt";
using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.Write))
{
byte[] buffer = System.Text.Encoding.UTF8.GetBytes("Writing data to FileStream.");
int offset = 0;
int count = buffer.Length;
// Writing data to the file
fileStream.Write(buffer, offset, count);
}
}
using System;
using System.IO;
public static void Main()
{
string path = "output.txt";
using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.Write))
{
byte[] buffer = System.Text.Encoding.UTF8.GetBytes("Writing data to FileStream.");
int offset = 0;
int count = buffer.Length;
// Writing data to the file
fileStream.Write(buffer, offset, count);
}
}
Imports System
Imports System.IO
Public Shared Sub Main()
Dim path As String = "output.txt"
Using fileStream As New FileStream(path, FileMode.Create, FileAccess.Write)
Dim buffer() As Byte = System.Text.Encoding.UTF8.GetBytes("Writing data to FileStream.")
Dim offset As Integer = 0
Dim count As Integer = buffer.Length
' Writing data to the file
fileStream.Write(buffer, offset, count)
End Using
End Sub
In diesem Code konvertieren wir eine Zeichenkette in ein Byte-Array mit UTF8-Kodierung. Die Write-Methode schreibt das Byte-Array in die Datei, beginnend mit der aktuellen Position(bestimmt durch den Offset) und das Schreiben der angegebenen Anzahl von Bytes.
Lassen Sie uns nun untersuchen, wie man mit FileStream Daten aus einer Datei liest.
using System;
using System.IO;
public static void Main()
{
// File path
string path = "output.txt";
// File Stream Object
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead = fileStream.Read(buffer, 0, buffer.Length);
// Output Stream
string output = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine(output);
}
}
using System;
using System.IO;
public static void Main()
{
// File path
string path = "output.txt";
// File Stream Object
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead = fileStream.Read(buffer, 0, buffer.Length);
// Output Stream
string output = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine(output);
}
}
Imports System
Imports System.IO
Public Shared Sub Main()
' File path
Dim path As String = "output.txt"
' File Stream Object
Using fileStream As New FileStream(path, FileMode.Open, FileAccess.Read)
Dim buffer(1023) As Byte
Dim bytesRead As Integer = fileStream.Read(buffer, 0, buffer.Length)
' Output Stream
Dim output As String = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead)
Console.WriteLine(output)
End Using
End Sub
In diesem Beispiel:
Die Klasse FileStream steuert den Zugriff auf Dateien und ermöglicht fein abgestimmte Dateihandles und die Verwaltung von Systemressourcen. Bei der Verwendung von FileStream muss unbedingt sichergestellt werden, dass der Stream nach der Verwendung ordnungsgemäß entsorgt wird, entweder durch den Aufruf von Close() manuell oder mit der Anweisung, die den Stream automatisch entsorgt.
Jedes Mal, wenn Sie eine Datei lesen oder schreiben, merkt sich der FileStream die aktuelle Position innerhalb der Datei. Sie können auf diese Position mit der Eigenschaft Position zugreifen:
fileStream.Position = 0; // Move to the beginning of the file
fileStream.Position = 0; // Move to the beginning of the file
fileStream.Position = 0 ' Move to the beginning of the file
FileStream kann für asynchrone Lese- und Schreibvorgänge verwendet werden, was die Leistung verbessert, da andere Prozesse laufen können, während die Dateioperationen ausgeführt werden. Hier ist ein einfaches Beispiel für asynchrones Lesen:
using System;
using System.IO;
using System.Threading.Tasks;
public static async Task Main()
{
// Specified Path
string path = "output.txt";
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None, 4096, true))
{
byte[] buffer = new byte[1024];
int bytesRead = await fileStream.ReadAsync(buffer, 0, buffer.Length);
string result = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine(result);
}
}
using System;
using System.IO;
using System.Threading.Tasks;
public static async Task Main()
{
// Specified Path
string path = "output.txt";
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None, 4096, true))
{
byte[] buffer = new byte[1024];
int bytesRead = await fileStream.ReadAsync(buffer, 0, buffer.Length);
string result = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine(result);
}
}
Imports System
Imports System.IO
Imports System.Threading.Tasks
Public Shared Async Function Main() As Task
' Specified Path
Dim path As String = "output.txt"
Using fileStream As New FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None, 4096, True)
Dim buffer(1023) As Byte
Dim bytesRead As Integer = Await fileStream.ReadAsync(buffer, 0, buffer.Length)
Dim result As String = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead)
Console.WriteLine(result)
End Using
End Function
Die ReadAsync-Methode liest die Daten asynchron. Die Parameter FileAccess.Read und FileMode.Open steuern, wie auf die Datei zugegriffen wird.
Bei der Arbeit mit FileStream ist der Umgang mit Ausnahmen wichtig, um Laufzeitfehler zu vermeiden und Systemressourcen richtig zu verwalten. Hier ist ein Muster für die Behandlung von Ausnahmen beim Lesen oder Schreiben von Dateien:
using System;
using System.IO;
public static void Main()
{
string path = "nonexistentfile.txt";
try
{
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead = fileStream.Read(buffer, 0, buffer.Length);
Console.WriteLine("Bytes Read: " + bytesRead);
}
}
catch (FileNotFoundException e)
{
Console.WriteLine($"Exception: {e.Message}");
}
}
using System;
using System.IO;
public static void Main()
{
string path = "nonexistentfile.txt";
try
{
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead = fileStream.Read(buffer, 0, buffer.Length);
Console.WriteLine("Bytes Read: " + bytesRead);
}
}
catch (FileNotFoundException e)
{
Console.WriteLine($"Exception: {e.Message}");
}
}
Imports System
Imports System.IO
Public Shared Sub Main()
Dim path As String = "nonexistentfile.txt"
Try
Using fileStream As New FileStream(path, FileMode.Open, FileAccess.Read)
Dim buffer(1023) As Byte
Dim bytesRead As Integer = fileStream.Read(buffer, 0, buffer.Length)
Console.WriteLine("Bytes Read: " & bytesRead)
End Using
Catch e As FileNotFoundException
Console.WriteLine($"Exception: {e.Message}")
End Try
End Sub
Die Klasse FileStream enthält einen Pufferungsmechanismus, der eine schnellere Leistung ermöglicht, insbesondere bei der Arbeit mit großen Dateien. Mithilfe eines Puffers werden Daten vorübergehend im Arbeitsspeicher gespeichert, wodurch sich die Notwendigkeit eines ständigen Festplattenzugriffs verringert.
using System;
using System.IO;
public static void Main()
{
string path = "bufferedfile.txt";
byte[] data = System.Text.Encoding.UTF8.GetBytes("Buffered FileStream example.");
using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None, 4096, FileOptions.WriteThrough))
{
fileStream.Write(data, 0, data.Length);
}
}
using System;
using System.IO;
public static void Main()
{
string path = "bufferedfile.txt";
byte[] data = System.Text.Encoding.UTF8.GetBytes("Buffered FileStream example.");
using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None, 4096, FileOptions.WriteThrough))
{
fileStream.Write(data, 0, data.Length);
}
}
Imports System
Imports System.IO
Public Shared Sub Main()
Dim path As String = "bufferedfile.txt"
Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes("Buffered FileStream example.")
Using fileStream As New FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None, 4096, FileOptions.WriteThrough)
fileStream.Write(data, 0, data.Length)
End Using
End Sub
Hier sorgt FileOptions.WriteThrough dafür, dass die Daten direkt in die Datei geschrieben werden, ohne zusätzliche Pufferung. Sie können jedoch die Puffergröße für die Leistungsoptimierung steuern.
IronPDF ist eine robuste C# PDF-Bibliothek zum Erstellen, Bearbeiten und Manipulieren von PDF-Dokumenten in .NET-Anwendungen. Entwickler könnenpDFs aus verschiedenen Eingaben wie HTML generierenbilder und sogar Rohtext mit IronPDF. Mit Funktionen wie Wasserzeichen, Zusammenführen, Aufteilen und Passwortschutz ist IronPDF ideal für Web- und Desktop-Anwendungen mit präziser Kontrolle über die PDF-Ausgabe.
Hier ein Beispiel für die Erstellung einer PDF-Datei mit IronPDF und deren Speicherung in einem FileStream. Es wird gezeigt, wie IronPDF nahtlos in FileStream integriert werden kann, so dass Entwickler die Erstellung und Speicherung von PDFs programmatisch steuern können.
using System;
using System.IO;
using IronPdf;
public static void Main()
{
// Define the file path
string path = "output.pdf";
// Create an HTML string that we want to convert to PDF
var htmlContent = "<h1>IronPDF Example</h1><p>This PDF was generated using IronPDF and saved with FileStream.</p>";
// Initialize IronPDF's ChromePdfRenderer to render HTML as PDF
var renderer = new ChromePdfRenderer();
// Generate the PDF from the HTML string
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Use FileStream to save the generated PDF
using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.Write))
{
pdfDocument.SaveAs(fileStream);
}
Console.WriteLine("PDF created and saved successfully.");
}
using System;
using System.IO;
using IronPdf;
public static void Main()
{
// Define the file path
string path = "output.pdf";
// Create an HTML string that we want to convert to PDF
var htmlContent = "<h1>IronPDF Example</h1><p>This PDF was generated using IronPDF and saved with FileStream.</p>";
// Initialize IronPDF's ChromePdfRenderer to render HTML as PDF
var renderer = new ChromePdfRenderer();
// Generate the PDF from the HTML string
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Use FileStream to save the generated PDF
using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.Write))
{
pdfDocument.SaveAs(fileStream);
}
Console.WriteLine("PDF created and saved successfully.");
}
Imports System
Imports System.IO
Imports IronPdf
Public Shared Sub Main()
' Define the file path
Dim path As String = "output.pdf"
' Create an HTML string that we want to convert to PDF
Dim htmlContent = "<h1>IronPDF Example</h1><p>This PDF was generated using IronPDF and saved with FileStream.</p>"
' Initialize IronPDF's ChromePdfRenderer to render HTML as PDF
Dim renderer = New ChromePdfRenderer()
' Generate the PDF from the HTML string
Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
' Use FileStream to save the generated PDF
Using fileStream As New FileStream(path, FileMode.Create, FileAccess.Write)
pdfDocument.SaveAs(fileStream)
End Using
Console.WriteLine("PDF created and saved successfully.")
End Sub
Die FileStream-Klasse in C# bietet leistungsstarke Funktionen für die Verwaltung von Dateieingaben und -ausgaben. Es ermöglicht Entwicklern, Daten effizient zu lesen und zu schreiben, die aktuelle Position innerhalb einer Datei zu kontrollieren und asynchron zu arbeiten, indem sie verstehen, wie Byte-Arrays, Dateipfade und Stream-Handling zusammenarbeiten. Die Verwendung von FileStream in Kombination mit IronPDF bietet Entwicklern die Flexibilität, PDFs innerhalb von .NET-Anwendungen effizient zu verarbeiten. Ganz gleich, ob Sie Berichte erstellen, Dateien speichern oder mit dynamischen Inhalten arbeiten, diese Kombination bietet eine gute Kontrolle über die Erstellung und Speicherung von PDF-Dokumenten.
IronPDF bietet einekostenloser Testund eine $749 Lizenzgebühr, was es zu einer wettbewerbsfähigen Lösung für professionelle PDF-Erstellungsanforderungen macht.
9 .NET API-Produkte für Ihre Bürodokumente