FileStream Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Stream Poskytuje soubor, který podporuje synchronní i asynchronní operace čtení a zápisu.
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
- Dědičnost
- Dědičnost
- Odvozené
- Atributy
Příklady
Následující příklad ukazuje některé konstruktory 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
Následující příklad ukazuje, jak zapisovat do souboru asynchronně. Tento kód běží v aplikaci WPF (Windows Presentation Foundation) s názvem TextBlock s názvem UserInput a tlačítkem, který je připojen k obslužné rutině události Click s názvem Button_Click. Cesta k souboru musí být změněna na soubor, který existuje v počítači.
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
Poznámky
Další informace o tomto rozhraní API naleznete v tématu Doplňkové poznámky k rozhraní API pro FileStream.
Konstruktory
| Name | Description |
|---|---|
| FileStream(IntPtr, FileAccess, Boolean, Int32, Boolean) |
Zastaralé.
Zastaralé.
Inicializuje novou instanci FileStream třídy pro zadaný popisovač souboru se zadaným oprávněním ke čtení a zápisu, |
| FileStream(IntPtr, FileAccess, Boolean, Int32) |
Zastaralé.
Zastaralé.
Inicializuje novou instanci FileStream třídy pro zadaný popisovač souboru se zadaným oprávněním ke čtení a zápisu, |
| FileStream(IntPtr, FileAccess, Boolean) |
Zastaralé.
Zastaralé.
Inicializuje novou instanci FileStream třídy pro zadaný popisovač souboru se zadaným oprávněním ke čtení/zápisu a |
| FileStream(IntPtr, FileAccess) |
Zastaralé.
Zastaralé.
Inicializuje novou instanci FileStream třídy pro zadaný popisovač souboru se zadaným oprávněním ke čtení a zápisu. |
| FileStream(SafeFileHandle, FileAccess, Int32, Boolean) |
Inicializuje novou instanci FileStream třídy pro zadaný popisovač souboru se zadaným oprávněním ke čtení/zápisu, velikost vyrovnávací paměti a synchronním nebo asynchronním stavem. |
| FileStream(SafeFileHandle, FileAccess, Int32) |
Inicializuje novou instanci FileStream třídy pro zadaný popisovač souboru se zadaným oprávněním ke čtení a zápisu a velikost vyrovnávací paměti. |
| FileStream(SafeFileHandle, FileAccess) |
Inicializuje novou instanci FileStream třídy pro zadaný popisovač souboru se zadaným oprávněním ke čtení a zápisu. |
| FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) |
Inicializuje novou instanci FileStream třídy se zadanou cestou, režimem vytvoření, oprávněním ke čtení/zápisu a sdílení, velikost vyrovnávací paměti a synchronním nebo asynchronním stavem. |
| FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions) |
Inicializuje novou instanci FileStream třídy se zadanou cestou, režimem vytvoření, oprávněním ke čtení a zápisu a sdílení, přístup k ostatním FileStreams může mít stejný soubor, velikost vyrovnávací paměti a další možnosti souboru. |
| FileStream(String, FileMode, FileAccess, FileShare, Int32) |
Inicializuje novou instanci FileStream třídy se zadanou cestou, režimem vytvoření, oprávněním ke čtení/zápisu a sdílení a velikostí vyrovnávací paměti. |
| FileStream(String, FileMode, FileAccess, FileShare) |
Inicializuje novou instanci FileStream třídy se zadanou cestou, režimem vytvoření, oprávněním ke čtení a zápisu a oprávněním ke sdílení. |
| FileStream(String, FileMode, FileAccess) |
Inicializuje novou instanci FileStream třídy se zadanou cestou, režimem vytvoření a oprávněním ke čtení a zápisu. |
| FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Inicializuje novou instanci FileStream třídy se zadanou cestou, režimem vytvoření, přístupovými právy a oprávněním ke sdílení, velikost vyrovnávací paměti, dalšími možnostmi souboru, řízením přístupu a zabezpečením auditu. |
| FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions) |
Inicializuje novou instanci FileStream třídy se zadanou cestou, režimem vytvoření, přístupovými právy a oprávněním ke sdílení, velikost vyrovnávací paměti a dalšími možnostmi souboru. |
| FileStream(String, FileMode) |
Inicializuje novou instanci FileStream třídy se zadanou cestou a režimem vytvoření. |
Vlastnosti
| Name | Description |
|---|---|
| CanRead |
Získá hodnotu, která označuje, zda aktuální datový proud podporuje čtení. |
| CanSeek |
Získá hodnotu, která označuje, zda aktuální datový proud podporuje hledání. |
| CanTimeout |
Získá hodnotu, která určuje, zda aktuální datový proud může vypršení časového limitu. (Zděděno od Stream) |
| CanWrite |
Získá hodnotu, která označuje, zda aktuální datový proud podporuje zápis. |
| Handle |
Zastaralé.
Zastaralé.
Získá popisovač souboru operačního systému pro soubor, který aktuální |
| IsAsync |
Získá hodnotu, která označuje, zda |
| Length |
Získá délku v bajtech datového proudu. |
| Name |
Získá absolutní cestu k souboru otevřeného v souboru |
| Position |
Získá nebo nastaví aktuální pozici tohoto datového proudu. |
| ReadTimeout |
Získá nebo nastaví hodnotu v milisekundách, která určuje, jak dlouho se datový proud pokusí přečíst před uplynutím časového limitu. (Zděděno od Stream) |
| SafeFileHandle |
SafeFileHandle Získá objekt, který představuje popisovač souboru operačního systému pro soubor, který aktuální FileStream objekt zapouzdřuje. |
| WriteTimeout |
Získá nebo nastaví hodnotu v milisekundách, která určuje, jak dlouho se datový proud pokusí zapsat před uplynutím časového limitu. (Zděděno od Stream) |
Metody
| Name | Description |
|---|---|
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Zahájí asynchronní operaci čtení. Místo toho zvažte použití ReadAsync(Byte[], Int32, Int32, CancellationToken) . |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Zahájí asynchronní operaci zápisu. Místo toho zvažte použití WriteAsync(Byte[], Int32, Int32, CancellationToken) . |
| Close() |
Zavře aktuální datový proud a uvolní všechny prostředky (například sokety a popisovače souborů) přidružené k aktuálnímu datovému proudu. |
| Close() |
Zavře aktuální datový proud a uvolní všechny prostředky (například sokety a popisovače souborů) přidružené k aktuálnímu datovému proudu. Místo volání této metody se ujistěte, že je datový proud správně uvolněn. (Zděděno od Stream) |
| CopyTo(Stream, Int32) |
Načte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti. Obě pozice datových proudů jsou rozšířeny počtem bajtů zkopírovaných. (Zděděno od Stream) |
| CopyTo(Stream) |
Přečte bajty z aktuálního datového proudu a zapíše je do jiného datového proudu. Obě pozice datových proudů jsou rozšířeny počtem bajtů zkopírovaných. (Zděděno od Stream) |
| CopyToAsync(Stream, CancellationToken) |
Asynchronně čte bajty z aktuálního datového proudu a zapisuje je do jiného datového proudu pomocí zadaného tokenu zrušení. Obě pozice datových proudů jsou rozšířeny počtem bajtů zkopírovaných. (Zděděno od Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Asynchronně čte bajty z aktuálního datového proudu souboru a zapisuje je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti a tokenu zrušení. |
| CopyToAsync(Stream, Int32, CancellationToken) |
Asynchronně čte bajty z aktuálního datového proudu a zapisuje je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti a tokenu zrušení. Obě pozice datových proudů jsou rozšířeny počtem bajtů zkopírovaných. (Zděděno od Stream) |
| CopyToAsync(Stream, Int32) |
Asynchronně čte bajty z aktuálního datového proudu a zapisuje je do jiného datového proudu pomocí zadané velikosti vyrovnávací paměti. Obě pozice datových proudů jsou rozšířeny počtem bajtů zkopírovaných. (Zděděno od Stream) |
| CopyToAsync(Stream) |
Asynchronně čte bajty z aktuálního datového proudu a zapisuje je do jiného datového proudu. Obě pozice datových proudů jsou rozšířeny počtem bajtů zkopírovaných. (Zděděno od Stream) |
| CreateObjRef(Type) |
Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy serveru sloužícího ke komunikaci se vzdáleným objektem. (Zděděno od MarshalByRefObject) |
| CreateWaitHandle() |
Zastaralé.
WaitHandle Přidělí objekt. (Zděděno od Stream) |
| Dispose() |
Uvolní všechny prostředky používané nástrojem Stream. (Zděděno od Stream) |
| Dispose(Boolean) |
Uvolní nespravované prostředky používané FileStream a volitelně uvolní spravované prostředky. |
| DisposeAsync() |
Asynchronně uvolní nespravované prostředky používané FileStreamnástrojem . |
| EndRead(IAsyncResult) |
Čeká na dokončení čekající asynchronní operace čtení. (Místo toho zvažte použití ReadAsync(Byte[], Int32, Int32, CancellationToken) .) |
| EndWrite(IAsyncResult) |
Ukončí asynchronní operaci zápisu a bloky, dokud nebude operace vstupně-výstupní operace dokončena. (Místo toho zvažte použití WriteAsync(Byte[], Int32, Int32, CancellationToken) .) |
| Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
| Finalize() |
Zajišťuje, že prostředky jsou uvolněny a další operace čištění se provádějí, když uvolňování paměti uvolní |
| Flush() |
Vymaže vyrovnávací paměti pro tento datový proud a způsobí zápis všech uložených dat do vyrovnávací paměti do souboru. |
| Flush(Boolean) |
Vymaže vyrovnávací paměti pro tento datový proud a způsobí zápis všech uložených dat do souboru a také vymaže všechny zprostředkující vyrovnávací paměti souboru. |
| FlushAsync() |
Asynchronně vymaže všechny vyrovnávací paměti pro tento datový proud a způsobí zápis všech dat uložených do vyrovnávací paměti do podkladového zařízení. (Zděděno od Stream) |
| FlushAsync(CancellationToken) |
Asynchronně vymaže všechny vyrovnávací paměti pro tento datový proud, způsobí zápis všech dat uložených do vyrovnávací paměti do souboru a monitoruje žádosti o zrušení. |
| GetAccessControl() |
FileSecurity Získá objekt, který zapouzdřuje položky seznamu řízení přístupu (ACL) pro soubor popsaný aktuálním FileStream objektem. |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetLifetimeService() |
Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| InitializeLifetimeService() |
Získá objekt služby životnosti pro řízení zásad životnosti pro tuto instanci. (Zděděno od MarshalByRefObject) |
| Lock(Int64, Int64) |
Zabraňuje jiným procesům v čtení nebo zápisu do objektu FileStream. |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| MemberwiseClone(Boolean) |
Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu. (Zděděno od MarshalByRefObject) |
| ObjectInvariant() |
Zastaralé.
Poskytuje podporu pro .Contract (Zděděno od Stream) |
| Read(Byte[], Int32, Int32) |
Načte blok bajtů z datového proudu a zapíše data do dané vyrovnávací paměti. |
| Read(Span<Byte>) |
Přečte posloupnost bajtů z aktuálního datového proudu souboru a posune pozici v datovém proudu souboru o počet přečtených bajtů. |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronně čte posloupnost bajtů z aktuálního datového proudu souboru a zapisuje je do bajtového pole začínajícího na zadaném posunu, posune pozici v datovém proudu souboru o počet přečtených bajtů a monitoruje žádosti o zrušení. |
| ReadAsync(Byte[], Int32, Int32) |
Asynchronně čte posloupnost bajtů z aktuálního datového proudu a posune pozici v datovém proudu o počet přečtených bajtů. (Zděděno od Stream) |
| ReadAsync(Memory<Byte>, CancellationToken) |
Asynchronně čte posloupnost bajtů z aktuálního datového proudu souboru a zapisuje je do oblasti paměti, posune pozici v datovém proudu souboru o počet přečtených bajtů a monitoruje žádosti o zrušení. |
| ReadByte() |
Přečte bajt ze souboru a posune pozici čtení o jeden bajt. |
| Seek(Int64, SeekOrigin) |
Nastaví aktuální pozici tohoto datového proudu na danou hodnotu. |
| SetAccessControl(FileSecurity) |
Použije položky seznamu řízení přístupu (ACL) popsané objektem FileSecurity na soubor popsaný aktuálním FileStream objektem. |
| SetLength(Int64) |
Nastaví délku tohoto datového proudu na danou hodnotu. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
| Unlock(Int64, Int64) |
Umožňuje přístup jiným procesům ke všem nebo částem souboru, který byl dříve uzamčen. |
| Write(Byte[], Int32, Int32) |
Zapíše blok bajtů do datového proudu souboru. |
| Write(ReadOnlySpan<Byte>) |
Zapíše posloupnost bajtů z rozsahu jen pro čtení do aktuálního datového proudu souboru a posune aktuální pozici v rámci tohoto datového proudu souboru o počet zapsaných bajtů. |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Asynchronně zapíše posloupnost bajtů do aktuálního datového proudu, posune aktuální pozici v tomto datovém proudu o počet zapsaných bajtů a monitoruje žádosti o zrušení. |
| WriteAsync(Byte[], Int32, Int32) |
Asynchronně zapíše posloupnost bajtů do aktuálního datového proudu a posune aktuální pozici v tomto datovém proudu o počet zapsaných bajtů. (Zděděno od Stream) |
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Asynchronně zapíše posloupnost bajtů z oblasti paměti do aktuálního datového proudu souboru, posune aktuální pozici v rámci tohoto datového proudu souboru o počet zapsaných bajtů a monitoruje žádosti o zrušení. |
| WriteByte(Byte) |
Zapíše bajt na aktuální pozici v datovém proudu souboru. |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Uvolní všechny prostředky používané nástrojem Stream. (Zděděno od Stream) |
Metody rozšíření
| Name | Description |
|---|---|
| AsInputStream(Stream) |
Převede spravovaný datový proud v .NET pro aplikace pro Windows Store na vstupní datový proud v prostředí prostředí Windows Runtime. |
| AsOutputStream(Stream) |
Převede spravovaný datový proud v .NET pro aplikace pro Windows Store na výstupní datový proud v prostředí prostředí Windows Runtime. |
| AsRandomAccessStream(Stream) |
Převede zadaný datový proud na datový proud s náhodným přístupem. |
| ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguruje, jak čekají na úlohy vrácené z asynchronního jednorázového použití. |