Exportar (0) Imprimir
Expandir todo

E/S de archivos básica

La clase base abstracta Stream es compatible con bytes de lectura y escritura. Stream tiene compatibilidad asincrónica. Sus implementaciones predeterminadas definen lecturas y escrituras asincrónicas según sus correspondientes métodos asincrónicos, y viceversa.

Todas las clases que representan secuencias se derivan de la clase Stream. La clase Stream y sus clases derivadas proporcionan una visión genérica de los orígenes de datos y los repositorios, aislando al programador de los detalles específicos del sistema operativo y sus dispositivos subyacentes.

Las secuencias comprenden estas operaciones fundamentales:

  • En las secuencias se puede leer. La lectura es la transferencia de datos desde una secuencia a una estructura de datos, como, por ejemplo, una matriz de bytes.

  • En las secuencias se puede escribir. La escritura consiste en la transferencia de información desde un origen de datos a una secuencia.

  • Las secuencias pueden admitir operaciones de búsqueda. Las operaciones de búsqueda consisten en la consulta y modificación de la posición actual en una secuencia.

Según el origen de datos o repositorio subyacente, las secuencias pueden admitir sólo algunas de estas características. Por ejemplo, NetworkStreams no admite operaciones de búsqueda. Las propiedades CanRead, CanWrite y CanSeek de la clase Stream y sus clases derivadas determinan qué operaciones admiten las diversas secuencias.

Para obtener una lista de tareas comunes de E/S, vea Tareas de E/S comunes.

NoteNota

Los usuarios de Visual Basic pueden utilizar las propiedades y métodos proporcionados por el objeto My.Computer.FileSystem para la entrada y salida de archivos. Para obtener más información al respecto, vea My.Computer.FileSystem (Objeto).

Clases usadas para E/S de archivos

Directory proporciona métodos estáticos para crear, mover y enumerar archivos en directorios y subdirectorios. La clase DirectoryInfo proporciona métodos de instancia.

DirectoryInfo proporciona métodos de instancia para crear, mover y enumerar archivos en directorios y subdirectorios. La clase Directory proporciona métodos estáticos.

DriveInfo proporciona los métodos de instancia para tener acceso a información sobre una unidad.

File proporciona métodos estáticos para crear, copiar, eliminar, mover y abrir archivos y contribuye a la creación de FileStream. La clase FileInfo proporciona métodos de instancia.

FileInfo proporciona métodos de instancia para crear, copiar, eliminar, mover y abrir archivos y contribuye a la creación de FileStream. La clase File proporciona métodos estáticos.

FileStream admite el acceso aleatorio a archivos mediante el método Seek. FileStream abre los archivos de forma sincrónica de manera predeterminada, pero también admite operaciones asincrónicas. File contiene métodos estáticos, mientras que FileInfo contiene métodos de instancia.

FileSystemInfo es la clase base abstracta para FileInfo y DirectoryInfo.

Path proporciona métodos y propiedades para procesar cadenas de directorio de una plataforma a otra.

DeflateStream proporciona métodos y propiedades para comprimir y descomprimir secuencias utilizando el algoritmo Deflate.

GZipStream proporciona métodos y propiedades para comprimir y descomprimir secuencias. De forma predeterminada, esta clase utiliza el mismo algoritmo que la clase DeflateStream, pero se puede extender para utilizar otros formatos de compresión.

SerialPort proporciona métodos y propiedades para controlar un recurso de archivo de puerto serie.

File, FileInfo, DriveInfo, Path, Directory y DirectoryInfo son clases selladas (en Microsoft Visual Basic, NotInheritable). Se pueden crear nuevas instancias de estas clases, pero no pueden tener clases derivadas.

Clases usadas para leer y escribir en secuencias

BinaryReader y BinaryWriter leen y escriben cadenas codificadas y tipos de datos primitivos desde y hacia las clases Stream.

StreamReader lee los caracteres de Streams, usando Encoding para convertir los caracteres en bytes y a partir de bytes. StreamReader tiene un constructor que trata de comprobar cuál es la codificación (Encoding ) correcta para una secuencia (Stream) dada, basándose en la presencia de un preámbulo específico de Encoding, por ejemplo una marca de orden de bytes.

StreamWriter escribe los caracteres en Streams, usando Encoding para convertir los caracteres en bytes.

StringReader lee los caracteres de Strings. StringReader permite tratar cadenas (Strings) con la misma API, de manera que su resultado puede ser una secuencia (Stream) en cualquier codificación o una cadena (String).

StringWriter escribe los caracteres en Strings. StringWriter permite tratar cadenas (Strings) con la misma API, de manera que su resultado puede ser una secuencia (Stream) en cualquier codificación o una cadena (String).

TextReader es la clase base abstracta para StreamReader y StringReader. Mientras que las implementaciones de la clase abstracta Stream están diseñadas para la entrada y salida de bytes, las de TextReader están diseñadas para la entrada de caracteres Unicode.

TextWriter es la clase base abstracta para StreamWriter y StringWriter. Mientras que las implementaciones de la clase abstracta Stream están diseñadas para la entrada y salida de bytes, las de TextWriter están diseñadas para la salida de caracteres Unicode.

Clases comunes de secuencias de E/S

Una BufferedStream es una Stream que agrega almacenamiento en búfer a otra Stream, como por ejemplo una NetworkStream. (FileStream ya tiene almacenamiento en búfer internamente, y MemoryStream no necesita almacenamiento en búfer.) BufferedStream se puede componer en torno a ciertos tipos de secuencias para mejorar el rendimiento de lectura y escritura. Un búfer es un bloque de bytes de la memoria utilizado para almacenar datos en la memoria caché y, de este modo, reducir el número de llamadas al sistema operativo.

Una CryptoStream vincula secuencias de datos a transformaciones criptográficas. Aunque CryptoStream deriva de Stream, no forma parte del espacio de nombres System.IO, sino del espacio de nombres System.Security.Cryptography.

Una MemoryStream es una secuencia no almacenada en búfer cuyos datos encapsulados son accesibles directamente en la memoria. Esta secuencia no tiene almacén de respaldo y puede resultar útil como búfer temporal.

Una NetworkStream representa una Stream a través de una conexión de red. Aunque NetworkStream deriva de Stream, no forma parte del espacio de nombres System.IO, sino de System.Net.Sockets.

E/S y seguridad

Cuando se utilizan las clases del espacio de nombres System.IO se deben satisfacer requisitos de seguridad del sistema operativo como las listas de control de acceso (ACL) para que se permita el acceso. Este requisito es adicional a cualquier requisito FileIOPermission.

NoteNota

Se pueden administrar listas de control de acceso (ACL) mediante programación. Para obtener más información, vea Cómo: Agregar o quitar entradas de la lista de control de acceso y Información general sobre la tecnología ACL.

Caution notePrecaución

La directiva de seguridad predeterminada de Internet y de una intranet no permite el acceso a archivos. Por ello, no use las clases de E/S de almacenamiento no aislado normales al escribir código que se vaya a descargar a través de Internet. En su lugar, utilice Almacenamiento aislado.

Caution notePrecaución

Al abrir un archivo o una secuencia de red, sólo se realiza una comprobación de seguridad cuando se construye la secuencia. Por lo tanto, se debe tener cuidado al entregar estas secuencias a dominios de aplicaciones o código que no sean de confianza.

Vea también

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft