FileStream Classe

Definição

Fornece um Stream arquivo para dar suporte a operações de leitura e gravação síncronas e assíncronas.

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
Herança
FileStream
Herança
Derivado
Atributos

Exemplos

O exemplo a seguir demonstra alguns dos FileStream construtores.

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

O exemplo a seguir mostra como gravar em um arquivo de forma assíncrona. Esse código é executado em um aplicativo WPF que tem um TextBlock chamado UserInput e um botão conectado a um manipulador de eventos Click chamado Button_Click. O caminho do arquivo precisa ser alterado para um arquivo que existe no computador.

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

Comentários

Para obter mais informações sobre essa API, consulte comentários de API Suplementar para FileStream.

Construtores

Nome Description
FileStream(IntPtr, FileAccess, Boolean, Int32, Boolean)
Obsoleto.
Obsoleto.

Inicializa uma nova instância da FileStream classe para o identificador de arquivo especificado, com a permissão de leitura/gravação especificada, FileStream a propriedade da instância, o tamanho do buffer e o estado síncrono ou assíncrono.

FileStream(IntPtr, FileAccess, Boolean, Int32)
Obsoleto.
Obsoleto.

Inicializa uma nova instância da FileStream classe para o identificador de arquivo especificado, com a permissão de leitura/gravação, FileStream a propriedade da instância e o tamanho do buffer especificados.

FileStream(IntPtr, FileAccess, Boolean)
Obsoleto.
Obsoleto.

Inicializa uma nova instância da classe para o identificador de arquivo especificado, com a permissão de leitura/gravação especificada e FileStream a propriedade da FileStream instância.

FileStream(IntPtr, FileAccess)
Obsoleto.
Obsoleto.

Inicializa uma nova instância da FileStream classe para o identificador de arquivo especificado, com a permissão de leitura/gravação especificada.

FileStream(SafeFileHandle, FileAccess, Int32, Boolean)

Inicializa uma nova instância da FileStream classe para o identificador de arquivo especificado, com a permissão de leitura/gravação especificada, o tamanho do buffer e o estado síncrono ou assíncrono.

FileStream(SafeFileHandle, FileAccess, Int32)

Inicializa uma nova instância da FileStream classe para o identificador de arquivo especificado, com a permissão de leitura/gravação especificada e o tamanho do buffer.

FileStream(SafeFileHandle, FileAccess)

Inicializa uma nova instância da FileStream classe para o identificador de arquivo especificado, com a permissão de leitura/gravação especificada.

FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean)

Inicializa uma nova instância da FileStream classe com o caminho especificado, o modo de criação, a permissão de leitura/gravação e compartilhamento, o tamanho do buffer e o estado síncrono ou assíncrono.

FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions)

Inicializa uma nova instância da FileStream classe com o caminho especificado, o modo de criação, a permissão de leitura/gravação e compartilhamento, o acesso que outros FileStreams podem ter para o mesmo arquivo, o tamanho do buffer e opções de arquivo adicionais.

FileStream(String, FileMode, FileAccess, FileShare, Int32)

Inicializa uma nova instância da FileStream classe com o caminho, o modo de criação, a permissão de leitura/gravação e compartilhamento especificados e o tamanho do buffer.

FileStream(String, FileMode, FileAccess, FileShare)

Inicializa uma nova instância da FileStream classe com o caminho, o modo de criação, a permissão de leitura/gravação e a permissão de compartilhamento especificados.

FileStream(String, FileMode, FileAccess)

Inicializa uma nova instância da FileStream classe com o caminho, o modo de criação e a permissão de leitura/gravação especificados.

FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

Inicializa uma nova instância da FileStream classe com o caminho, o modo de criação, os direitos de acesso e a permissão de compartilhamento especificados, o tamanho do buffer, opções de arquivo adicionais, controle de acesso e segurança de auditoria.

FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions)

Inicializa uma nova instância da FileStream classe com o caminho, o modo de criação, os direitos de acesso e a permissão de compartilhamento especificados, o tamanho do buffer e opções de arquivo adicionais.

FileStream(String, FileMode)

Inicializa uma nova instância da FileStream classe com o caminho e o modo de criação especificados.

Propriedades

Nome Description
CanRead

Obtém um valor que indica se o fluxo atual dá suporte à leitura.

CanSeek

Obtém um valor que indica se o fluxo atual dá suporte à busca.

CanTimeout

Obtém um valor que determina se o fluxo atual pode acabar.

(Herdado de Stream)
CanWrite

Obtém um valor que indica se o fluxo atual dá suporte à gravação.

Handle
Obsoleto.
Obsoleto.

Obtém o identificador de arquivo do sistema operacional para o arquivo encapsulado pelo objeto atual FileStream .

IsAsync

Obtém um valor que indica se o FileStream foi aberto de forma assíncrona ou síncrona.

Length

Obtém o comprimento em bytes do fluxo.

Name

Obtém o caminho absoluto do arquivo aberto no FileStream.

Position

Obtém ou define a posição atual desse fluxo.

ReadTimeout

Obtém ou define um valor, em milissegundos, que determina quanto tempo o fluxo tentará ler antes do tempo limite.

(Herdado de Stream)
SafeFileHandle

Obtém um SafeFileHandle objeto que representa o identificador de arquivo do sistema operacional para o arquivo encapsulado pelo objeto atual FileStream .

WriteTimeout

Obtém ou define um valor, em milissegundos, que determina por quanto tempo o fluxo tentará gravar antes do tempo limite.

(Herdado de Stream)

Métodos

Nome Description
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Inicia uma operação de leitura assíncrona. Considere o uso de ReadAsync(Byte[], Int32, Int32, CancellationToken) em seu lugar.

BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Inicia uma operação de gravação assíncrona. Considere o uso de WriteAsync(Byte[], Int32, Int32, CancellationToken) em seu lugar.

Close()

Fecha o fluxo atual e libera todos os recursos (como soquetes e identificadores de arquivo) associados ao fluxo atual.

Close()

Fecha o fluxo atual e libera todos os recursos (como soquetes e identificadores de arquivo) associados ao fluxo atual. Em vez de chamar esse método, verifique se o fluxo foi descartado corretamente.

(Herdado de Stream)
CopyTo(Stream, Int32)

Lê os bytes do fluxo atual e os grava em outro fluxo, usando um tamanho de buffer especificado. Ambas as posições de fluxos são avançadas pelo número de bytes copiados.

(Herdado de Stream)
CopyTo(Stream)

Lê os bytes do fluxo atual e os grava em outro fluxo. Ambas as posições de fluxos são avançadas pelo número de bytes copiados.

(Herdado de Stream)
CopyToAsync(Stream, CancellationToken)

Lê assíncronamente os bytes do fluxo atual e os grava em outro fluxo, usando um token de cancelamento especificado. Ambas as posições de fluxos são avançadas pelo número de bytes copiados.

(Herdado de Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Lê assíncronamente os bytes do fluxo de arquivos atual e os grava em outro fluxo, usando um token de cancelamento e tamanho de buffer especificado.

CopyToAsync(Stream, Int32, CancellationToken)

Lê assíncronamente os bytes do fluxo atual e os grava em outro fluxo, usando um token de cancelamento e tamanho de buffer especificado. Ambas as posições de fluxos são avançadas pelo número de bytes copiados.

(Herdado de Stream)
CopyToAsync(Stream, Int32)

Lê de forma assíncrona os bytes do fluxo atual e os grava em outro fluxo, usando um tamanho de buffer especificado. Ambas as posições de fluxos são avançadas pelo número de bytes copiados.

(Herdado de Stream)
CopyToAsync(Stream)

Lê assíncronamente os bytes do fluxo atual e os grava em outro fluxo. Ambas as posições de fluxos são avançadas pelo número de bytes copiados.

(Herdado de Stream)
CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
CreateWaitHandle()
Obsoleto.

Aloca um objeto WaitHandle.

(Herdado de Stream)
Dispose()

Libera todos os recursos usados pelo Stream.

(Herdado de Stream)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo FileStream e, opcionalmente, libera os recursos gerenciados.

DisposeAsync()

Libera de forma assíncrona os recursos não gerenciados usados pelo FileStream.

EndRead(IAsyncResult)

Aguarda a conclusão da operação de leitura assíncrona pendente. (Considere usar ReadAsync(Byte[], Int32, Int32, CancellationToken) em vez disso.)

EndWrite(IAsyncResult)

Encerra uma operação de gravação assíncrona e bloqueia até que a operação de E/S seja concluída. (Considere usar WriteAsync(Byte[], Int32, Int32, CancellationToken) em vez disso.)

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Garante que os recursos sejam liberados e outras operações de limpeza sejam executadas quando o coletor de lixo recuperar o FileStream.

Flush()

Limpa os buffers desse fluxo e faz com que todos os dados em buffer sejam gravados no arquivo.

Flush(Boolean)

Limpa os buffers desse fluxo e faz com que todos os dados em buffer sejam gravados no arquivo e também limpa todos os buffers de arquivos intermediários.

FlushAsync()

Limpa de forma assíncrona todos os buffers para esse fluxo e faz com que todos os dados em buffer sejam gravados no dispositivo subjacente.

(Herdado de Stream)
FlushAsync(CancellationToken)

Limpa de forma assíncrona todos os buffers para esse fluxo, faz com que todos os dados em buffer sejam gravados no arquivo e monitora solicitações de cancelamento.

GetAccessControl()

Obtém um FileSecurity objeto que encapsula as entradas acl (lista de controle de acesso) para o arquivo descrito pelo objeto atual FileStream .

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetLifetimeService()

Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeLifetimeService()

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância.

(Herdado de MarshalByRefObject)
Lock(Int64, Int64)

Impede que outros processos leiam ou gravem no FileStream.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto atual MarshalByRefObject .

(Herdado de MarshalByRefObject)
ObjectInvariant()
Obsoleto.

Fornece suporte para um Contract.

(Herdado de Stream)
Read(Byte[], Int32, Int32)

Lê um bloco de bytes do fluxo e grava os dados em um determinado buffer.

Read(Span<Byte>)

Lê uma sequência de bytes do fluxo de arquivos atual e avança a posição dentro do fluxo de arquivos pelo número de bytes lidos.

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Lê de forma assíncrona uma sequência de bytes do fluxo de arquivos atual e os grava em uma matriz de bytes começando em um deslocamento especificado, avança a posição dentro do fluxo de arquivos pelo número de bytes lidos e monitora solicitações de cancelamento.

ReadAsync(Byte[], Int32, Int32)

Lê de forma assíncrona uma sequência de bytes do fluxo atual e avança a posição dentro do fluxo pelo número de bytes lidos.

(Herdado de Stream)
ReadAsync(Memory<Byte>, CancellationToken)

Lê de forma assíncrona uma sequência de bytes do fluxo de arquivos atual e os grava em uma região de memória, avança a posição dentro do fluxo de arquivos pelo número de bytes lidos e monitora solicitações de cancelamento.

ReadByte()

Lê um byte do arquivo e avança a posição de leitura um byte.

Seek(Int64, SeekOrigin)

Define a posição atual desse fluxo como o valor fornecido.

SetAccessControl(FileSecurity)

Aplica entradas acl (lista de controle de acesso) descritas por um FileSecurity objeto ao arquivo descrito pelo objeto atual FileStream .

SetLength(Int64)

Define o comprimento desse fluxo como o valor fornecido.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
Unlock(Int64, Int64)

Permite o acesso de outros processos a todos ou parte de um arquivo que foi bloqueado anteriormente.

Write(Byte[], Int32, Int32)

Grava um bloco de bytes no fluxo de arquivos.

Write(ReadOnlySpan<Byte>)

Grava uma sequência de bytes de um intervalo somente leitura para o fluxo de arquivos atual e avança a posição atual dentro desse fluxo de arquivos pelo número de bytes gravados.

WriteAsync(Byte[], Int32, Int32, CancellationToken)

Grava de forma assíncrona uma sequência de bytes no fluxo atual, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora solicitações de cancelamento.

WriteAsync(Byte[], Int32, Int32)

Grava de forma assíncrona uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo pelo número de bytes gravados.

(Herdado de Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Grava de forma assíncrona uma sequência de bytes de uma região de memória no fluxo de arquivos atual, avança a posição atual nesse fluxo de arquivos pelo número de bytes gravados e monitora solicitações de cancelamento.

WriteByte(Byte)

Grava um byte na posição atual no fluxo de arquivos.

Implantações explícitas de interface

Nome Description
IDisposable.Dispose()

Libera todos os recursos usados pelo Stream.

(Herdado de Stream)

Métodos de Extensão

Nome Description
AsInputStream(Stream)

Converte um fluxo gerenciado no .NET para aplicativos da Windows Store em um fluxo de entrada no Windows Runtime.

AsOutputStream(Stream)

Converte um fluxo gerenciado no .NET para aplicativos da Windows Store em um fluxo de saída no Windows Runtime.

AsRandomAccessStream(Stream)

Converte o fluxo especificado em um fluxo de acesso aleatório.

ConfigureAwait(IAsyncDisposable, Boolean)

Configura como as esperas nas tarefas retornadas de um descartável assíncrono serão executadas.

Aplica-se a

Confira também