FileStream Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt een Stream voor een bestand, dat zowel synchrone als asynchrone lees- en schrijfbewerkingen ondersteunt.
public ref class FileStream : System::IO::Stream
public class FileStream : System.IO.Stream
[System.Runtime.InteropServices.ComVisible(true)]
public class FileStream : System.IO.Stream
type FileStream = class
inherit Stream
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileStream = class
inherit Stream
Public Class FileStream
Inherits Stream
- Overname
- Overname
- Afgeleid
- Kenmerken
Voorbeelden
In het volgende voorbeeld ziet u enkele van de FileStream constructors.
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
// Delete the file if it exists.
if (File.Exists(path))
{
File.Delete(path);
}
//Create the file.
using (FileStream fs = File.Create(path))
{
AddText(fs, "This is some text");
AddText(fs, "This is some more text,");
AddText(fs, "\r\nand this is on a new line");
AddText(fs, "\r\n\r\nThe following is a subset of characters:\r\n");
for (int i=1;i < 120;i++)
{
AddText(fs, Convert.ToChar(i).ToString());
}
}
//Open the stream and read it back.
using (FileStream fs = File.OpenRead(path))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
int readLen;
while ((readLen = fs.Read(b,0,b.Length)) > 0)
{
Console.WriteLine(temp.GetString(b,0,readLen));
}
}
}
private static void AddText(FileStream fs, string value)
{
byte[] info = new UTF8Encoding(true).GetBytes(value);
fs.Write(info, 0, info.Length);
}
}
open System
open System.IO
open System.Text
let addText (fs:FileStream) (value: string) =
let info = UTF8Encoding(true).GetBytes value
fs.Write(info, 0, info.Length);
let path = @"c:\temp\MyTest.txt"
// Delete the file if it exists.
if File.Exists path then
File.Delete path
//Create the file.
do
use fs = File.Create path
addText fs "This is some text"
addText fs "This is some more text,"
addText fs "\r\nand this is on a new line"
addText fs "\r\n\r\nThe following is a subset of characters:\r\n"
for i = 1 to 119 do
Convert.ToChar i
|> string
|> addText fs
do
//Open the stream and read it back.
use fs = File.OpenRead path
let b = Array.zeroCreate 1024
let temp = UTF8Encoding true
let mutable readLen = fs.Read(b,0,b.Length);
while readLen> 0 do
printfn $"{temp.GetString(b,0,readLen)}"
readLen <- fs.Read(b,0,b.Length)
Imports System.IO
Imports System.Text
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
' Delete the file if it exists.
If File.Exists(path) Then
File.Delete(path)
End If
'Create the file.
Dim fs As FileStream = File.Create(path)
AddText(fs, "This is some text")
AddText(fs, "This is some more text,")
AddText(fs, Environment.NewLine & "and this is on a new line")
AddText(fs, Environment.NewLine & Environment.NewLine)
AddText(fs, "The following is a subset of characters:" & Environment.NewLine)
Dim i As Integer
For i = 1 To 120
AddText(fs, Convert.ToChar(i).ToString())
Next
fs.Close()
'Open the stream and read it back.
fs = File.OpenRead(path)
Dim b(1023) As Byte
Dim temp As UTF8Encoding = New UTF8Encoding(True)
Do While fs.Read(b, 0, b.Length) > 0
Console.WriteLine(temp.GetString(b))
Loop
fs.Close()
End Sub
Private Shared Sub AddText(ByVal fs As FileStream, ByVal value As String)
Dim info As Byte() = New UTF8Encoding(True).GetBytes(value)
fs.Write(info, 0, info.Length)
End Sub
End Class
In het volgende voorbeeld ziet u hoe u asynchroon naar een bestand schrijft. Deze code wordt uitgevoerd in een WPF-app met een TextBlock met de naam UserInput en een knop die is gekoppeld aan een Click-gebeurtenis-handler met de naam Button_Click. Het bestandspad moet worden gewijzigd in een bestand dat op de computer aanwezig is.
using System;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.IO;
namespace WpfApplication1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
UnicodeEncoding uniencoding = new UnicodeEncoding();
string filename = @"c:\Users\exampleuser\Documents\userinputlog.txt";
byte[] result = uniencoding.GetBytes(UserInput.Text);
using (FileStream SourceStream = File.Open(filename, FileMode.OpenOrCreate))
{
SourceStream.Seek(0, SeekOrigin.End);
await SourceStream.WriteAsync(result, 0, result.Length);
}
}
}
}
Imports System.IO
Imports System.Text
Class MainWindow
Private Async Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim uniencoding As UnicodeEncoding = New UnicodeEncoding()
Dim filename As String = "c:\Users\exampleuser\Documents\userinputlog.txt"
Dim result As Byte() = uniencoding.GetBytes(UserInput.Text)
Using SourceStream As FileStream = File.Open(filename, FileMode.OpenOrCreate)
SourceStream.Seek(0, SeekOrigin.End)
Await SourceStream.WriteAsync(result, 0, result.Length)
End Using
End Sub
End Class
Opmerkingen
Zie Aanvullende API-opmerkingen voor FileStream voor meer informatie over deze API.
Constructors
| Name | Description |
|---|---|
| FileStream(IntPtr, FileAccess, Boolean, Int32, Boolean) |
Verouderd.
Verouderd.
Initialiseert een nieuw exemplaar van de FileStream klasse voor de opgegeven bestandsingang, met de opgegeven lees-/schrijfmachtiging, |
| FileStream(IntPtr, FileAccess, Boolean, Int32) |
Verouderd.
Verouderd.
Initialiseert een nieuw exemplaar van de FileStream klasse voor de opgegeven bestandsingang, met de opgegeven lees-/schrijfmachtiging, |
| FileStream(IntPtr, FileAccess, Boolean) |
Verouderd.
Verouderd.
Initialiseert een nieuw exemplaar van de FileStream klasse voor de opgegeven bestandsingang, met de opgegeven lees-/schrijfmachtiging en |
| FileStream(IntPtr, FileAccess) |
Verouderd.
Verouderd.
Initialiseert een nieuw exemplaar van de FileStream klasse voor de opgegeven bestandsingang, met de opgegeven lees-/schrijfmachtiging. |
| FileStream(SafeFileHandle, FileAccess, Int32, Boolean) |
Initialiseert een nieuw exemplaar van de FileStream klasse voor de opgegeven bestandsingang, met de opgegeven lees-/schrijfmachtiging, buffergrootte en synchrone of asynchrone status. |
| FileStream(SafeFileHandle, FileAccess, Int32) |
Initialiseert een nieuw exemplaar van de FileStream klasse voor de opgegeven bestandsingang, met de opgegeven lees-/schrijfmachtiging en buffergrootte. |
| FileStream(SafeFileHandle, FileAccess) |
Initialiseert een nieuw exemplaar van de FileStream klasse voor de opgegeven bestandsingang, met de opgegeven lees-/schrijfmachtiging. |
| FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) |
Initialiseert een nieuw exemplaar van de FileStream klasse met het opgegeven pad, de aanmaakmodus, de machtiging lezen/schrijven en delen, buffergrootte en synchrone of asynchrone status. |
| FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions) |
Initialiseert een nieuw exemplaar van de FileStream klasse met het opgegeven pad, de aanmaakmodus, de machtiging lezen/schrijven en delen, de toegang tot andere FileStreams kan hetzelfde bestand, de buffergrootte en aanvullende bestandsopties hebben. |
| FileStream(String, FileMode, FileAccess, FileShare, Int32) |
Initialiseert een nieuw exemplaar van de FileStream klasse met het opgegeven pad, de aanmaakmodus, de machtiging lezen/schrijven en delen en de buffergrootte. |
| FileStream(String, FileMode, FileAccess, FileShare) |
Initialiseert een nieuw exemplaar van de FileStream klasse met het opgegeven pad, de aanmaakmodus, de lees-/schrijfmachtiging en de machtiging voor delen. |
| FileStream(String, FileMode, FileAccess) |
Initialiseert een nieuw exemplaar van de FileStream klasse met het opgegeven pad, de aanmaakmodus en de machtiging lezen/schrijven. |
| FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Initialiseert een nieuw exemplaar van de FileStream klasse met het opgegeven pad, de aanmaakmodus, toegangsrechten en de machtiging voor delen, de buffergrootte, aanvullende bestandsopties, toegangsbeheer en controlebeveiliging. |
| FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions) |
Initialiseert een nieuw exemplaar van de FileStream klasse met het opgegeven pad, de aanmaakmodus, toegangsrechten en de machtiging voor delen, de buffergrootte en aanvullende bestandsopties. |
| FileStream(String, FileMode) |
Initialiseert een nieuw exemplaar van de FileStream klasse met het opgegeven pad en de aanmaakmodus. |
Eigenschappen
| Name | Description |
|---|---|
| CanRead |
Hiermee haalt u een waarde op die aangeeft of de huidige stroom het lezen ondersteunt. |
| CanSeek |
Hiermee wordt een waarde opgehaald die aangeeft of de huidige stroom zoeken ondersteunt. |
| CanTimeout |
Hiermee wordt een waarde opgehaald die bepaalt of er een time-out optreedt voor de huidige stroom. (Overgenomen van Stream) |
| CanWrite |
Hiermee wordt een waarde opgehaald die aangeeft of de huidige stroom schrijfkracht ondersteunt. |
| Handle |
Verouderd.
Verouderd.
Hiermee haalt u de bestandsgreep van het besturingssysteem op voor het bestand dat het huidige |
| IsAsync |
Hiermee wordt een waarde opgehaald die aangeeft of het |
| Length |
Hiermee haalt u de lengte op in bytes van de stream. |
| Name |
Hiermee haalt u het absolute pad op van het bestand dat in het |
| Position |
Hiermee haalt u de huidige positie van deze stroom op of stelt u deze in. |
| ReadTimeout |
Hiermee wordt een waarde opgehaald of ingesteld, in milliseconden, die bepaalt hoe lang de stroom probeert te lezen voordat er een time-out optreedt. (Overgenomen van Stream) |
| SafeFileHandle |
Hiermee wordt een SafeFileHandle object opgehaald dat de bestandsgreep van het besturingssysteem vertegenwoordigt voor het bestand dat het huidige FileStream object inkapselt. |
| WriteTimeout |
Hiermee wordt een waarde opgehaald of ingesteld, in milliseconden, die bepaalt hoe lang de stream probeert te schrijven voordat er een time-out optreedt. (Overgenomen van Stream) |
Methoden
| Name | Description |
|---|---|
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Begint een asynchrone leesbewerking. Overweeg in plaats daarvan ReadAsync(Byte[], Int32, Int32, CancellationToken) te gebruiken. |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Hiermee wordt een asynchrone schrijfbewerking gestart. Overweeg in plaats daarvan WriteAsync(Byte[], Int32, Int32, CancellationToken) te gebruiken. |
| Close() |
Hiermee sluit u de huidige stroom en worden alle resources (zoals sockets en bestandsingangen) die aan de huidige stroom zijn gekoppeld, vrijgegeven. |
| Close() |
Hiermee sluit u de huidige stroom en worden alle resources (zoals sockets en bestandsingangen) die aan de huidige stroom zijn gekoppeld, vrijgegeven. In plaats van deze methode aan te roepen, moet u ervoor zorgen dat de stream correct wordt verwijderd. (Overgenomen van Stream) |
| CopyTo(Stream, Int32) |
Leest de bytes uit de huidige stream en schrijft ze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyTo(Stream) |
Leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, CancellationToken) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stream met behulp van een opgegeven annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Asynchroon leest de bytes uit de huidige bestandsstroom en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte en annuleringstoken. |
| CopyToAsync(Stream, Int32, CancellationToken) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte en annuleringstoken. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream, Int32) |
Asynchroon leest de bytes uit de huidige stream en schrijft deze naar een andere stroom, met behulp van een opgegeven buffergrootte. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CopyToAsync(Stream) |
Asynchroon leest de bytes uit de huidige stream en schrijft ze naar een andere stream. Beide streamsposities worden geavanceerd door het aantal gekopieerde bytes. (Overgenomen van Stream) |
| CreateObjRef(Type) |
Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object. (Overgenomen van MarshalByRefObject) |
| CreateWaitHandle() |
Verouderd.
Wijst een WaitHandle object toe. (Overgenomen van Stream) |
| Dispose() |
Alle resources die worden gebruikt door de Stream. (Overgenomen van Stream) |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die worden gebruikt door de FileStream beheerde resources en brengt eventueel de beheerde resources vrij. |
| DisposeAsync() |
Geeft asynchroon de onbeheerde resources vrij die worden gebruikt door de FileStream. |
| EndRead(IAsyncResult) |
Wacht totdat de asynchrone leesbewerking is voltooid. (Overweeg in plaats daarvan om te gebruiken ReadAsync(Byte[], Int32, Int32, CancellationToken) .) |
| EndWrite(IAsyncResult) |
Hiermee beëindigt u een asynchrone schrijfbewerking en blokkeert u deze totdat de I/O-bewerking is voltooid. (Overweeg in plaats daarvan om te gebruiken WriteAsync(Byte[], Int32, Int32, CancellationToken) .) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| Finalize() |
Zorgt ervoor dat resources worden vrijgemaakt en andere opschoonbewerkingen worden uitgevoerd wanneer de garbagecollector de |
| Flush() |
Hiermee worden buffers voor deze stroom gewist en worden eventuele gebufferde gegevens naar het bestand geschreven. |
| Flush(Boolean) |
Hiermee worden buffers voor deze stroom gewist en worden eventuele gebufferde gegevens naar het bestand geschreven en worden ook alle tussenliggende bestandsbuffers gewist. |
| FlushAsync() |
Asynchroon wist alle buffers voor deze stroom en zorgt ervoor dat eventuele gebufferde gegevens naar het onderliggende apparaat worden geschreven. (Overgenomen van Stream) |
| FlushAsync(CancellationToken) |
Asynchroon wist alle buffers voor deze stroom, zorgt ervoor dat gebufferde gegevens naar het bestand worden geschreven en worden annuleringsaanvragen gecontroleerd. |
| GetAccessControl() |
Hiermee haalt u een FileSecurity object op dat de ACL-vermeldingen (Access Control List) inkapselt voor het bestand dat wordt beschreven door het huidige FileStream object. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetLifetimeService() |
Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd. (Overgenomen van MarshalByRefObject) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializeLifetimeService() |
Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren. (Overgenomen van MarshalByRefObject) |
| Lock(Int64, Int64) |
Voorkomt dat andere processen lezen van of schrijven naar de FileStream. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MemberwiseClone(Boolean) |
Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object. (Overgenomen van MarshalByRefObject) |
| ObjectInvariant() |
Verouderd.
Biedt ondersteuning voor een Contract. (Overgenomen van Stream) |
| Read(Byte[], Int32, Int32) |
Leest een blok bytes uit de stream en schrijft de gegevens in een bepaalde buffer. |
| Read(Span<Byte>) |
Hiermee wordt een reeks bytes uit de huidige bestandsstroom gelezen en wordt de positie binnen de bestandsstroom verplaatst door het aantal gelezen bytes. |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchroon leest een reeks bytes uit de huidige bestandsstroom en schrijft deze naar een bytematrix die begint bij een opgegeven offset, de positie binnen de bestandsstroom door het aantal bytes lezen en bewaakt annuleringsaanvragen. |
| ReadAsync(Byte[], Int32, Int32) |
Asynchroon leest een reeks bytes uit de huidige stroom en wordt de positie binnen de stream verplaatst door het aantal gelezen bytes. (Overgenomen van Stream) |
| ReadAsync(Memory<Byte>, CancellationToken) |
Asynchroon leest een reeks bytes uit de huidige bestandsstroom en schrijft deze naar een geheugenregio, verplaatst de positie in de bestandsstroom door het aantal bytes lezen en bewaakt annuleringsaanvragen. |
| ReadByte() |
Hiermee wordt een byte uit het bestand gelezen en wordt de leespositie één byte weergegeven. |
| Seek(Int64, SeekOrigin) |
Hiermee stelt u de huidige positie van deze stroom in op de opgegeven waarde. |
| SetAccessControl(FileSecurity) |
Hiermee past u ACL-vermeldingen (Access Control List) toe die door een FileSecurity object worden beschreven in het bestand dat door het huidige FileStream object wordt beschreven. |
| SetLength(Int64) |
Hiermee stelt u de lengte van deze stroom in op de opgegeven waarde. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| Unlock(Int64, Int64) |
Hiermee wordt toegang door andere processen toegestaan voor alle of een deel van een bestand dat eerder was vergrendeld. |
| Write(Byte[], Int32, Int32) |
Hiermee schrijft u een blok bytes naar de bestandsstroom. |
| Write(ReadOnlySpan<Byte>) |
Hiermee schrijft u een reeks bytes van een alleen-lezenbereik naar de huidige bestandsstroom en wordt de huidige positie binnen deze bestandsstroom verplaatst door het aantal geschreven bytes. |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchroon schrijft een reeks bytes naar de huidige stroom, verplaatst de huidige positie binnen deze stream door het aantal geschreven bytes en bewaakt annuleringsaanvragen. |
| WriteAsync(Byte[], Int32, Int32) |
Asynchroon schrijft een reeks bytes naar de huidige stroom en wordt de huidige positie binnen deze stroom verplaatst door het aantal geschreven bytes. (Overgenomen van Stream) |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Asynchroon schrijft een reeks bytes van een geheugenregio naar de huidige bestandsstroom, verplaatst de huidige positie binnen deze bestandsstroom naar het aantal geschreven bytes en bewaakt annuleringsaanvragen. |
| WriteByte(Byte) |
Hiermee schrijft u een byte naar de huidige positie in de bestandsstroom. |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Alle resources die worden gebruikt door de Stream. (Overgenomen van Stream) |
Extensiemethoden
| Name | Description |
|---|---|
| AsInputStream(Stream) |
Converteert een beheerde stream in de .NET voor Windows Store-apps naar een invoerstroom in de Windows Runtime. |
| AsOutputStream(Stream) |
Converteert een beheerde stream in de .NET voor Windows Store-apps naar een uitvoerstroom in de Windows Runtime. |
| AsRandomAccessStream(Stream) |
Converteert de opgegeven stream naar een stream voor willekeurige toegang. |
| ConfigureAwait(IAsyncDisposable, Boolean) |
Hiermee configureert u hoe wacht op de taken die worden geretourneerd op basis van een asynchroon wegwerp, worden uitgevoerd. |