FileStream Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller en Stream för en fil som stöder både synkrona och asynkrona läs- och skrivåtgärder.
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
- Arv
- Arv
- Härledda
- Attribut
Exempel
I följande exempel visas några av konstruktorerna FileStream .
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
I följande exempel visas hur du skriver till en fil asynkront. Den här koden körs i en WPF app som har en TextBlock med namnet UserInput och en knapp som är ansluten till en Click-händelsehanterare med namnet Button_Click. Filsökvägen måste ändras till en fil som finns på datorn.
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
Kommentarer
Mer information om det här API:et finns i Kompletterande API-kommentarer för FileStream.
Konstruktorer
| Name | Description |
|---|---|
| FileStream(IntPtr, FileAccess, Boolean, Int32, Boolean) |
Föråldrad.
Föråldrad.
Föråldrad.
Initierar en ny instans av FileStream klassen för det angivna filhandtaget med angiven läs-/skrivbehörighet, |
| FileStream(IntPtr, FileAccess, Boolean, Int32) |
Föråldrad.
Föråldrad.
Föråldrad.
Initierar en ny instans av FileStream klassen för det angivna filhandtaget med angiven läs-/skrivbehörighet, |
| FileStream(IntPtr, FileAccess, Boolean) |
Föråldrad.
Föråldrad.
Föråldrad.
Initierar en ny instans av FileStream klassen för det angivna filhandtaget med angiven läs-/skrivbehörighet och |
| FileStream(IntPtr, FileAccess) |
Föråldrad.
Föråldrad.
Föråldrad.
Initierar en ny instans av FileStream klassen för det angivna filhandtaget med den angivna läs-/skrivbehörigheten. |
| FileStream(SafeFileHandle, FileAccess, Int32, Boolean) |
Initierar en ny instans av FileStream klassen för det angivna filhandtaget med angiven läs-/skrivbehörighet, buffertstorlek och synkront eller asynkront tillstånd. |
| FileStream(SafeFileHandle, FileAccess, Int32) |
Initierar en ny instans av FileStream klassen för det angivna filhandtaget med angiven läs-/skrivbehörighet och buffertstorlek. |
| FileStream(SafeFileHandle, FileAccess) |
Initierar en ny instans av FileStream klassen för det angivna filhandtaget med den angivna läs-/skrivbehörigheten. |
| FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) |
Initierar en ny instans av FileStream klassen med angiven sökväg, skapandeläge, läs-/skriv- och delningsbehörighet, buffertstorlek och synkront eller asynkront tillstånd. |
| FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions) |
Initierar en ny instans av FileStream klassen med den angivna sökvägen, skapandeläget, läs-/skriv- och delningsbehörigheten, åtkomsten till andra FileStreams kan ha till samma fil, buffertstorleken och ytterligare filalternativ. |
| FileStream(String, FileMode, FileAccess, FileShare, Int32) |
Initierar en ny instans av FileStream klassen med angiven sökväg, skapandeläge, läs-/skriv- och delningsbehörighet och buffertstorlek. |
| FileStream(String, FileMode, FileAccess, FileShare) |
Initierar en ny instans av FileStream klassen med den angivna sökvägen, skapandeläget, läs-/skrivbehörighet och delningsbehörighet. |
| FileStream(String, FileMode, FileAccess) |
Initierar en ny instans av FileStream klassen med den angivna sökvägen, skapandeläget och läs-/skrivbehörigheten. |
| FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Initierar en ny instans av FileStream klassen med den angivna sökvägen, skapandeläget, åtkomsträttigheter och delningsbehörighet, buffertstorleken, ytterligare filalternativ, åtkomstkontroll och granskningssäkerhet. |
| FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions) |
Initierar en ny instans av FileStream klassen med den angivna sökvägen, skapandeläget, åtkomsträttigheter och delningsbehörighet, buffertstorleken och ytterligare filalternativ. |
| FileStream(String, FileMode) |
Initierar en ny instans av FileStream klassen med den angivna sökvägen och skapandeläget. |
| FileStream(String, FileStreamOptions) |
Initierar en ny instans av FileStream klassen med den angivna sökvägen, skapandeläge, läs-/skriv- och delningsbehörighet, buffertstorlek, ytterligare filalternativ, förallokeringsstorlek och åtkomst till andra FileStreams kan ha till samma fil. |
Egenskaper
| Name | Description |
|---|---|
| CanRead |
Hämtar ett värde som anger om den aktuella strömmen stöder läsning. |
| CanSeek |
Hämtar ett värde som anger om den aktuella strömmen stöder sökning. |
| CanTimeout |
Hämtar ett värde som avgör om den aktuella strömmen kan överskrida tidsgränsen. (Ärvd från Stream) |
| CanWrite |
Hämtar ett värde som anger om den aktuella strömmen stöder skrivning. |
| Handle |
Föråldrad.
Föråldrad.
Föråldrad.
Hämtar operativsystemets filhandtag för filen som det aktuella |
| IsAsync |
Hämtar ett värde som anger om öppnades |
| Length |
Hämtar längden i byte av strömmen. |
| Name |
Hämtar den absoluta sökvägen till filen som öppnas i |
| Position |
Hämtar eller anger aktuell position för den här strömmen. |
| ReadTimeout |
Hämtar eller anger ett värde i millisekunder som avgör hur länge strömmen ska försöka läsa innan tidsgränsen nås. (Ärvd från Stream) |
| SafeFileHandle |
Hämtar ett SafeFileHandle objekt som representerar operativsystemets filhandtag för filen som det aktuella FileStream objektet kapslar in. |
| WriteTimeout |
Hämtar eller anger ett värde i millisekunder som avgör hur länge strömmen ska försöka skriva innan tidsgränsen nås. (Ärvd från Stream) |
Metoder
| Name | Description |
|---|---|
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Påbörjar en asynkron läsåtgärd. Överväg att använda ReadAsync(Byte[], Int32, Int32, CancellationToken) i stället. |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Påbörjar en asynkron skrivåtgärd. Överväg att använda WriteAsync(Byte[], Int32, Int32, CancellationToken) i stället. |
| Close() |
Stänger den aktuella strömmen och släpper alla resurser (till exempel socketar och filhandtag) som är associerade med den aktuella strömmen. |
| Close() |
Stänger den aktuella strömmen och släpper alla resurser (till exempel socketar och filhandtag) som är associerade med den aktuella strömmen. I stället för att anropa den här metoden kontrollerar du att dataströmmen tas bort korrekt. (Ärvd från Stream) |
| CopyTo(Stream, Int32) |
Läser byteen från den aktuella strömmen och skriver dem till en annan ström med en angiven buffertstorlek. Båda strömmarnas positioner avanceras av antalet kopierade byte. |
| CopyTo(Stream, Int32) |
Läser byteen från den aktuella strömmen och skriver dem till en annan ström med en angiven buffertstorlek. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyTo(Stream) |
Läser byteen från den aktuella strömmen och skriver dem till en annan ström. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream, CancellationToken) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström med hjälp av en angiven annulleringstoken. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Läser asynkront byte från den aktuella filströmmen och skriver dem till en annan ström med en angiven buffertstorlek och annulleringstoken. |
| CopyToAsync(Stream, Int32, CancellationToken) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan dataström med en angiven buffertstorlek och annulleringstoken. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream, Int32) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström med en angiven buffertstorlek. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CopyToAsync(Stream) |
Läser asynkront byte från den aktuella strömmen och skriver dem till en annan ström. Båda strömmarnas positioner avanceras av antalet kopierade byte. (Ärvd från Stream) |
| CreateObjRef(Type) |
Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt. (Ärvd från MarshalByRefObject) |
| CreateWaitHandle() |
Föråldrad.
Föråldrad.
Föråldrad.
Allokerar ett WaitHandle objekt. (Ärvd från Stream) |
| Dispose() |
Släpper alla resurser som används av Stream. (Ärvd från Stream) |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av FileStream och släpper eventuellt de hanterade resurserna. |
| DisposeAsync() |
Asynkront släpper de ohanterade resurser som används av FileStream. |
| EndRead(IAsyncResult) |
Väntar på att den väntande asynkrona läsåtgärden ska slutföras. (Överväg att använda ReadAsync(Byte[], Int32, Int32, CancellationToken) i stället.) |
| EndWrite(IAsyncResult) |
Avslutar en asynkron skrivåtgärd och blockerar tills I/O-åtgärden har slutförts. (Överväg att använda WriteAsync(Byte[], Int32, Int32, CancellationToken) i stället.) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| Finalize() |
Säkerställer att resurser frigörs och att andra rensningsåtgärder utförs när skräpinsamlaren |
| Flush() |
Rensar buffertar för den här strömmen och gör att buffrade data skrivs till filen. |
| Flush(Boolean) |
Rensar buffertar för den här strömmen och gör att buffrade data skrivs till filen och rensar även alla mellanliggande filbuffertar. |
| FlushAsync() |
Rensar asynkront alla buffertar för den här strömmen och gör att buffrade data skrivs till den underliggande enheten. (Ärvd från Stream) |
| FlushAsync(CancellationToken) |
Rensar asynkront alla buffertar för den här strömmen, gör att buffrade data skrivs till filen och övervakar begäranden om annullering. |
| GetAccessControl() |
Hämtar ett FileSecurity objekt som kapslar in ACL-poster (Access Control List) för filen som beskrivs av det aktuella FileStream objektet. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetLifetimeService() |
Föråldrad.
Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InitializeLifetimeService() |
Föråldrad.
Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| Lock(Int64, Int64) |
Förhindrar att andra processer läser från eller skriver till FileStream. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| MemberwiseClone(Boolean) |
Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet. (Ärvd från MarshalByRefObject) |
| ObjectInvariant() |
Föråldrad.
Tillhandahåller stöd för en Contract. (Ärvd från Stream) |
| Read(Byte[], Int32, Int32) |
Läser ett block med byte från strömmen och skriver data i en viss buffert. |
| Read(Span<Byte>) |
Läser en sekvens med byte från den aktuella filströmmen och ökar positionen i filströmmen med antalet lästa byte. |
| Read(Span<Byte>) |
När den åsidosätts i en härledd klass läser du en sekvens med byte från den aktuella strömmen och flyttar fram positionen i dataströmmen med antalet lästa byte. (Ärvd från Stream) |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Läser asynkront en sekvens med byte från den aktuella filströmmen och skriver dem till en bytematris som börjar vid en angiven förskjutning, ökar positionen i filströmmen med antalet lästa byte och övervakar begäranden om annullering. |
| ReadAsync(Byte[], Int32, Int32) |
Läser asynkront en sekvens med byte från den aktuella strömmen och avancerar positionen i strömmen med antalet lästa byte. (Ärvd från Stream) |
| ReadAsync(Memory<Byte>, CancellationToken) |
Läser asynkront en sekvens med byte från den aktuella filströmmen och skriver dem till en minnesregion, avancerar positionen i filströmmen med antalet lästa byte och övervakar begäranden om annullering. |
| ReadAsync(Memory<Byte>, CancellationToken) |
Läser asynkront en sekvens med byte från den aktuella strömmen, avancerar positionen i strömmen med antalet lästa byte och övervakar begäranden om annullering. (Ärvd från Stream) |
| ReadAtLeast(Span<Byte>, Int32, Boolean) |
Läser minst ett minsta antal byte från den aktuella strömmen och avancerar positionen i dataströmmen med antalet lästa byte. (Ärvd från Stream) |
| ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Läser asynkront minst ett minsta antal byte från den aktuella strömmen, avancerar positionen i strömmen med antalet lästa byte och övervakar begäranden om annullering. (Ärvd från Stream) |
| ReadByte() |
Läser en byte från filen och avancerar läspositionen en byte. |
| ReadExactly(Byte[], Int32, Int32) |
|
| ReadExactly(Span<Byte>) |
Läser byte från den aktuella strömmen och flyttar positionen i dataströmmen tills den |
| ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Läser |
| ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Läser asynkront byte från den aktuella strömmen, flyttar positionen i strömmen tills den |
| Seek(Int64, SeekOrigin) |
Anger strömmens aktuella position till det angivna värdet. |
| SetAccessControl(FileSecurity) |
Tillämpar poster i åtkomstkontrollistan (ACL) som beskrivs av ett FileSecurity objekt på filen som beskrivs av det aktuella FileStream objektet. |
| SetLength(Int64) |
Anger längden på den här strömmen till det angivna värdet. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| Unlock(Int64, Int64) |
Tillåter åtkomst av andra processer till hela eller delar av en fil som tidigare var låst. |
| Write(Byte[], Int32, Int32) |
Skriver ett byteblock till filströmmen. |
| Write(ReadOnlySpan<Byte>) |
Skriver en sekvens med byte från ett skrivskyddat intervall till den aktuella filströmmen och flyttar fram den aktuella positionen i den här filströmmen med antalet skrivna byte. |
| Write(ReadOnlySpan<Byte>) |
När den åsidosätts i en härledd klass skriver du en sekvens med byte till den aktuella strömmen och flyttar fram den aktuella positionen i den här strömmen med antalet skrivna byte. (Ärvd från Stream) |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Skriver asynkront en sekvens med byte till den aktuella strömmen, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering. |
| WriteAsync(Byte[], Int32, Int32) |
Skriver asynkront en sekvens med byte till den aktuella strömmen och avancerar den aktuella positionen i den här strömmen med antalet skrivna byte. (Ärvd från Stream) |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Skriver asynkront en sekvens med byte från en minnesregion till den aktuella filströmmen, ökar den aktuella positionen i den här filströmmen med antalet skrivna byte och övervakar begäranden om annullering. |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Skriver asynkront en sekvens med byte till den aktuella strömmen, avancerar den aktuella positionen i den här strömmen med antalet skrivna byte och övervakar begäranden om annullering. (Ärvd från Stream) |
| WriteByte(Byte) |
Skriver en byte till den aktuella positionen i filströmmen. |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Släpper alla resurser som används av Stream. (Ärvd från Stream) |
Tilläggsmetoder
| Name | Description |
|---|---|
| AsInputStream(Stream) |
Konverterar en hanterad ström i .NET för Windows Store-appar till en indataström i Windows Runtime. |
| AsOutputStream(Stream) |
Konverterar en hanterad ström i .NET för Windows Store-appar till en utdataström i Windows Runtime. |
| AsRandomAccessStream(Stream) |
Konverterar den angivna strömmen till en slumpmässig åtkomstström. |
| ConfigureAwait(IAsyncDisposable, Boolean) |
Konfigurerar hur väntar på de uppgifter som returneras från en asynkron disponibel ska utföras. |
| CopyToAsync(Stream, PipeWriter, CancellationToken) |
Läser asynkront byteen från Stream och skriver dem till den angivna PipeWriter, med hjälp av en annulleringstoken. |
| GetAccessControl(FileStream) |
Returnerar säkerhetsinformationen för en fil. |
| SetAccessControl(FileStream, FileSecurity) |
Ändrar säkerhetsattributen för en befintlig fil. |