FileStream Clase
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

FileStream (Clase)

 

Proporciona un Stream para un archivo, lo que permite operaciones de lectura y escritura sincrónica y asincrónica.

Para examinar el código fuente de .NET Framework para este tipo, vea la Reference Source.

Espacio de nombres:   System.IO
Ensamblado:  mscorlib (en mscorlib.dll)


[ComVisibleAttribute(true)]
public class FileStream : Stream

NombreDescripción
System_CAPS_pubmethodFileStream(IntPtr, FileAccess)

Obsoleto.Inicializa una nueva instancia de la clase FileStream para el identificador de archivo especificado, con el permiso de lectura y escritura especificado.

System_CAPS_pubmethodFileStream(IntPtr, FileAccess, Boolean)

Obsoleto.Inicializa una nueva instancia de la clase FileStream para el identificador de archivo especificado, con el permiso de lectura y escritura establecido y la propiedad de la instancia de FileStream.

System_CAPS_pubmethodFileStream(IntPtr, FileAccess, Boolean, Int32)

Obsoleto.Inicializa una nueva instancia de la clase FileStream para el identificador de archivo especificado, con el tamaño de búfer, la propiedad de la instancia de FileStream y el permiso de lectura y escritura especificados.

System_CAPS_pubmethodFileStream(IntPtr, FileAccess, Boolean, Int32, Boolean)

Obsoleto.Inicializa una nueva instancia de la clase FileStream para el identificador de archivo especificado, con el estado sincrónico o asincrónico, el tamaño de búfer, la propiedad de la instancia de FileStream y el permiso de lectura y escritura especificados.

System_CAPS_pubmethodFileStream(SafeFileHandle, FileAccess)

Inicializa una nueva instancia de la clase FileStream para el identificador de archivo especificado, con el permiso de lectura y escritura especificado.

System_CAPS_pubmethodFileStream(SafeFileHandle, FileAccess, Int32)

Inicializa una nueva instancia de la clase FileStream para el identificador de archivo especificado, con el tamaño de búfer y el permiso de lectura y escritura especificados.

System_CAPS_pubmethodFileStream(SafeFileHandle, FileAccess, Int32, Boolean)

Inicializa una nueva instancia de la clase FileStream para el identificador de archivo especificado, y con el permiso de lectura y escritura, el tamaño de búfer y el estado sincrónico o asincrónico especificados.

System_CAPS_pubmethodFileStream(String, FileMode)

Inicializa una nueva instancia de la clase FileStream con el modo de creación y la ruta de acceso especificados.

System_CAPS_pubmethodFileStream(String, FileMode, FileAccess)

Inicializa una nueva instancia de la clase FileStream con el permiso de lectura y escritura, el modo de creación y la ruta de acceso especificados.

System_CAPS_pubmethodFileStream(String, FileMode, FileAccess, FileShare)

Inicializa una nueva instancia de la clase FileStream con el permiso de uso compartido, el permiso de lectura y escritura, el modo de creación y la ruta de acceso especificados.

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

Inicializa una nueva instancia de la clase FileStream con el tamaño de búfer, el permiso de lectura y escritura y de uso compartido, el modo de creación y la ruta de acceso especificados.

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

Inicializa una nueva instancia de la clase FileStream con el estado sincrónico o asincrónico, el tamaño de búfer, el permiso de lectura y escritura y de uso compartido, el modo de creación y la ruta de acceso especificados.

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

Inicializa una nueva instancia de la clase FileStream con la ruta de acceso, el modo de creación, los permisos de lectura y escritura y de uso compartido, el acceso que otras secuencias de archivos pueden tener al mismo archivo, el tamaño del búfer y otras opciones de archivo que se hayan especificado.

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

Inicializa una nueva instancia de la clase FileStream con la ruta de acceso, el modo de creación, los derechos de acceso y el permiso de uso compartido, el tamaño de búfer y opciones de archivo adicionales que se hayan especificado.

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

Inicializa una nueva instancia de la clase FileStream con la ruta de acceso, el modo de creación, los derechos de acceso y el permiso de uso compartido, el tamaño de búfer, las opciones de archivo adicionales, el control de acceso y la seguridad de auditoría que se hayan especificado.

NombreDescripción
System_CAPS_pubpropertyCanRead

Obtiene un valor que indica si la secuencia actual admite lectura.(Reemplaza a Stream.CanRead).

System_CAPS_pubpropertyCanSeek

Obtiene un valor que indica si la secuencia actual admite búsquedas.(Reemplaza a Stream.CanSeek).

System_CAPS_pubpropertyCanTimeout

Obtiene un valor que determina si se puede agotar el tiempo de espera de la secuencia actual.(Heredado de Stream.)

System_CAPS_pubpropertyCanWrite

Obtiene un valor que indica si la secuencia actual admite escritura.(Reemplaza a Stream.CanWrite).

System_CAPS_pubpropertyHandle

Obsoleto.Obtiene el identificador de archivo del sistema operativo correspondiente al archivo que el objeto FileStream encapsula.

System_CAPS_pubpropertyIsAsync

Obtiene un valor que indica si se abrió FileStream de forma sincrónica o asincrónica.

System_CAPS_pubpropertyLength

Devuelve la longitud en bytes del flujo.(Reemplaza a Stream.Length).

System_CAPS_pubpropertyName

Obtiene el nombre del FileStream que se pasó al constructor.

System_CAPS_pubpropertyPosition

Obtiene o establece la posición actual de esta secuencia.(Reemplaza a Stream.Position).

System_CAPS_pubpropertyReadTimeout

Obtiene o establece un valor, en milisegundos, que determina durante cuánto tiempo la secuencia intentará realizar operaciones de lectura antes de que se agote el tiempo de espera.(Heredado de Stream.)

System_CAPS_pubpropertySafeFileHandle

Obtiene un objeto SafeFileHandle que representa el identificador de archivos del sistema operativo correspondiente al archivo que el objeto FileStream actual encapsula.

System_CAPS_pubpropertyWriteTimeout

Obtiene o establece un valor, en milisegundos, que determina durante cuánto tiempo la secuencia intentará realizar operaciones de escritura antes de que se agote el tiempo de espera.(Heredado de Stream.)

NombreDescripción
System_CAPS_pubmethodBeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Comienza una operación de lectura asincrónica. (Utilice ReadAsync en su lugar; vea la sección Comentarios).(Reemplaza a Stream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)).

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

Comienza una operación de escritura asincrónica. (Utilice WriteAsync en su lugar; vea la sección Comentarios).(Reemplaza a Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)).

System_CAPS_pubmethodClose()

Cierra la secuencia actual y libera todos los recursos (como sockets e identificadores de archivo) asociados a esta. En lugar de llamar a este método, asegúrese de que la secuencia se desecha correctamente.(Heredado de Stream.)

System_CAPS_pubmethodCopyTo(Stream)

Cierra la secuencia actual y libera todos los recursos (tales como sockets y manejadores de archivo)asociados a la secuencia actual. (Heredado de Stream.)

System_CAPS_pubmethodCopyTo(Stream, Int32)

En vez de llamar a este método, asegúrese de que la secuencia actual ha sido correctamente liberada. (Heredado de Stream.)

System_CAPS_pubmethodCopyToAsync(Stream)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia.(Heredado de Stream.)

System_CAPS_pubmethodCopyToAsync(Stream, Int32)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, usando el tamaño de búfer especificado.(Heredado de Stream.)

System_CAPS_pubmethodCopyToAsync(Stream, Int32, CancellationToken)

Lee asincrónicamente los bytes de la secuencia actual y los escribe en otra secuencia, utilizando el tamaño de búfer y el token de cancelación especificados.(Heredado de Stream.)

System_CAPS_pubmethodCreateObjRef(Type)

Crea un objeto que contiene toda la información pertinente necesaria para generar a un proxy utilizado para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject.)

System_CAPS_protmethodCreateWaitHandle()

Obsoleto.Asigna un objeto WaitHandle.(Heredado de Stream.)

System_CAPS_pubmethodDispose()

Libera todos los recursos usados por Stream.(Heredado de Stream.)

System_CAPS_protmethodDispose(Boolean)

Libera los recursos no administrados que usa FileStream y libera los recursos administrados de forma opcional.(Reemplaza a Stream.Dispose(Boolean)).

System_CAPS_pubmethodEndRead(IAsyncResult)

Espera a que se complete la operación asincrónica de lectura que se encuentra pendiente. (Utilice ReadAsync en su lugar; vea la sección Comentarios).(Reemplaza a Stream.EndRead(IAsyncResult)).

System_CAPS_pubmethodEndWrite(IAsyncResult)

Termina una operación de escritura asincrónica y se bloquea hasta que se completa la operación de E/S. (Utilice WriteAsync en su lugar; vea la sección Comentarios).(Reemplaza a Stream.EndWrite(IAsyncResult)).

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object.)

System_CAPS_protmethodFinalize()

Garantiza que se liberen los recursos y se realicen otras operaciones de limpieza cuando el recolector de elementos no utilizados reclama FileStream.(Reemplaza a Object.Finalize()).

System_CAPS_pubmethodFlush()

Borra los búferes de esta secuencia y hace que todos los datos almacenados en los búferes se escriban en el archivo.(Reemplaza a Stream.Flush()).

System_CAPS_pubmethodFlush(Boolean)

Borra los búferes de esta secuencia, hace que todos los datos almacenados en los búferes se escriban en el archivo y borra también todos los búferes de archivos intermedios.

System_CAPS_pubmethodFlushAsync()

Borra asincrónicamente todos los búferes de esta secuencia y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.(Heredado de Stream.)

System_CAPS_pubmethodFlushAsync(CancellationToken)

Borra asincrónicamente todos los búferes del flujo actual, hace que todos los datos almacenados en el búfer se escriban en el dispositivo subyacente y supervisa las solicitudes de cancelación.(Reemplaza a Stream.FlushAsync(CancellationToken)).

System_CAPS_pubmethodGetAccessControl()

Obtiene un objeto FileSecurity que encapsula las entradas de lista de control de acceso (ACL) del archivo descrito por el objeto FileStream actual.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object.)

System_CAPS_pubmethodGetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject.)

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object.)

System_CAPS_pubmethodInitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject.)

System_CAPS_pubmethodLock(Int64, Int64)

Impide que otros procesos lean de FileStream o escriban en él.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia superficial del actual MarshalByRefObject objeto.(Heredado de MarshalByRefObject.)

System_CAPS_protmethodObjectInvariant()

Obsoleto. Esta API admite la infraestructura de product y no está pensada para usarse directamente desde su código. Proporciona compatibilidad con una clase Contract.(Heredado de Stream.)

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

Lee un bloque de bytes de la secuencia y escribe los datos en un búfer dado.(Reemplaza a Stream.Read(Byte[], Int32, Int32)).

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32)

Lee asincrónicamente una secuencia de bytes de la secuencia actual y avanza la posición en esta secuencia según el número de bytes leídos.(Heredado de Stream.)

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

Lee de forma asincrónica una secuencia de bytes en la secuencia actual, se hace avanzar la posición dentro de la secuencia el número de bytes leídos y controla las solicitudes de cancelación.(Reemplaza a Stream.ReadAsync(Byte[], Int32, Int32, CancellationToken)).

System_CAPS_pubmethodReadByte()

Lee un byte del archivo y avanza la posición de lectura un byte.(Reemplaza a Stream.ReadByte()).

System_CAPS_pubmethodSeek(Int64, SeekOrigin)

Establece la posición actual de esta secuencia actual en el valor dado.(Reemplaza a Stream.Seek(Int64, SeekOrigin)).

System_CAPS_pubmethodSetAccessControl(FileSecurity)

Aplica las entradas de la lista de control de acceso (ACL) descritas por un objeto FileSecurity al archivo descrito por el objeto FileStream actual.

System_CAPS_pubmethodSetLength(Int64)

Establece la longitud de esta secuencia en el valor dado.(Reemplaza a Stream.SetLength(Int64)).

System_CAPS_pubmethodToString()

Retorna una cadena que representa al objeto actual. (Heredado de Object.)

System_CAPS_pubmethodUnlock(Int64, Int64)

Permite que otros procesos tengan acceso total o parcial a un archivo previamente bloqueado.

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

Escribe un bloque de bytes en la secuencia de archivo.(Reemplaza a Stream.Write(Byte[], Int32, Int32)).

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32)

Escribe asincrónicamente una secuencia de bytes en la secuencia actual y avanza la posición actual en esta secuencia según el número de bytes escritos.(Heredado de Stream.)

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

Escribe de forma asincrónica una secuencia de bytes en la secuencia actual, se hace avanzar la posición actual dentro de la secuencia el número de bytes escritos y controla las solicitudes de cancelación.(Reemplaza a Stream.WriteAsync(Byte[], Int32, Int32, CancellationToken)).

System_CAPS_pubmethodWriteByte(Byte)

Escribe un byte en la posición actual de la secuencia de archivo.(Reemplaza a Stream.WriteByte(Byte)).

System_CAPS_noteNota

Para ver el código fuente de .NET Framework para este tipo, consulte el Reference Source. Puede examinar el código fuente en línea, descargue la referencia para verla sin conexión y recorrer (incluidas las revisiones y actualizaciones) durante la depuración; see instructions.

Utilice la FileStream clase para leer, escribir, abrir y cerrar archivos en un sistema de archivos y para manipular otros identificadores del sistema operativo relacionados con archivos, como canalizaciones, entrada estándar y salida estándar. Puede usar el Read, Write, CopyTo, y Flush métodos para realizar operaciones sincrónicas, o ReadAsync, WriteAsync, CopyToAsync, y FlushAsync métodos para realizar operaciones asincrónicas. Utilice los métodos asincrónicos para realizar operaciones de archivos de gran cantidad de recursos sin bloquear el subproceso principal. Esta consideración de rendimiento es especialmente importante en una aplicación de la Tienda Windows 8.x o una aplicación de escritorio en que una operación de streaming prolongada puede bloquear el subproceso de interfaz de usuario y hacer que parezca que una aplicación ha dejado de responder. FileStream búferes de entrada y salida para mejorar el rendimiento.

System_CAPS_importantImportante

Este tipo implementa la IDisposable interfaz. Cuando haya terminado de utilizar el tipo, debería eliminar, directa o indirectamente. Para deshacerse del tipo directamente, llame a su Dispose método en un try/catch bloque. Para deshacerse de él indirectamente, usar una construcción de lenguaje como using (en C#) o Using (en Visual Basic). Para obtener más información, consulte la sección "Uso de un objeto que implementa IDisposable" en el IDisposable tema de la interfaz.

El IsAsync propiedad detecta si se abrió el identificador de archivo de forma asincrónica. Especifique este valor cuando se crea una instancia de la FileStream clase utilizando un constructor que tiene un isAsync, useAsync, o options parámetro. Cuando la propiedad es true, la secuencia utiliza E/S superpuesta para realizar operaciones de archivo de forma asincrónica. Sin embargo, la IsAsync propiedad no tiene que ser true para llamar a la ReadAsync, WriteAsync, o CopyToAsync (método). Cuando el IsAsync propiedad es false y llamar a la lectura asincrónica y las operaciones de escritura, todavía no bloquean el subproceso de la interfaz de usuario, pero la operación de E/S real se realiza de forma sincrónica.

El Seek método admite el acceso aleatorio a los archivos. Seek permite la posición de lectura y escritura se muevan a cualquier posición dentro del archivo. Esto se realiza mediante parámetros de punto de referencia de desplazamiento de bytes. El desplazamiento de byte es relativo al punto de referencia de búsqueda, que puede ser el comienzo, la posición actual o el final del archivo subyacente, representado por los tres miembros de la SeekOrigin (enumeración).

System_CAPS_noteNota

Archivos de disco siempre admiten el acceso aleatorio. En el momento de la construcción, la CanSeek valor de la propiedad se establece en true o false dependiendo del tipo de archivo subyacente. Si el tipo de archivo subyacente es FILE_TYPE_DISK, según se define en winbase.h, el CanSeek es el valor de la propiedad true. De lo contrario, el CanSeek es el valor de la propiedad false.

Si un proceso termina con parte de un archivo bloqueado o cierra un archivo que tiene bloqueos pendientes, el comportamiento es indefinido.

Para operaciones de directorio y otras operaciones de archivo, consulte el File, Directory, y Path las clases. El File es una clase de utilidad que tiene métodos estáticos principalmente para la creación de FileStream objetos basados en rutas de acceso de archivo. La MemoryStream clase crea una secuencia a partir de una matriz de bytes y es similar a la FileStream clase.

Para obtener una lista de operaciones de directorio y de archivo común, consulte Tareas de E/S comunes.

Cuando un FileStream objeto no tiene control exclusivo sobre su identificador, otro subproceso podría tener acceso al identificador de archivo al mismo tiempo y cambiar la posición del puntero de archivo del sistema operativo que está asociado con el identificador de archivo. En este caso, la posición almacenada en la FileStream objeto y los datos en caché en el búfer podrían verse comprometidos. La FileStream objeto habitualmente realiza comprobaciones en los métodos que obtener acceso al búfer en caché para garantizar que la posición del identificador del sistema operativo es el mismo que la posición almacenada en caché utilizada por la FileStream objeto.

Si se detecta un cambio inesperado en la posición del identificador en una llamada a la Read (método), .NET Framework descarta el contenido del búfer y vuelve a leer la secuencia del archivo. Esto puede afectar al rendimiento, dependiendo del tamaño del archivo y los demás procesos que podrían afectar a la posición de la secuencia de archivo.

Si se detecta un cambio inesperado en la posición del identificador en una llamada a la Write (método), el contenido del búfer se descartan y un IOException excepción.

Un FileStream objeto no se tiene control exclusivo sobre su identificador cuando ambos el SafeFileHandle acceso a la propiedad para exponer el identificador o el FileStream se proporciona al objeto el SafeFileHandle propiedad en su constructor.

El ejemplo siguiente muestra algunas de las FileStream constructores.

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);
            while (fs.Read(b,0,b.Length) > 0)
            {
                Console.WriteLine(temp.GetString(b));
            }
        }
    }

    private static void AddText(FileStream fs, string value)
    {
        byte[] info = new UTF8Encoding(true).GetBytes(value);
        fs.Write(info, 0, info.Length);
    }
}

En el ejemplo siguiente se muestra cómo escribir en un archivo de forma asincrónica. Este código se ejecuta en una aplicación WPF que tiene un bloque de texto denominado UserInput y un botón enlazarse a un controlador de eventos Click denominado Button_Click. La ruta de acceso debe cambiarse a un archivo que exista en el equipo.

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);
            }
        }
    }
}

Universal Windows Platform
Disponible desde 10
.NET Framework
Disponible desde 1.1
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Volver al principio
Mostrar:
© 2016 Microsoft