C #: E / S de archivos

UNA filees una colección de datos almacenados en un disco con un nombre específico y una ruta de directorio. Cuando un archivo se abre para leer o escribir, se conviertestream.

El flujo es básicamente la secuencia de bytes que pasan por la ruta de comunicación. Hay dos corrientes principales: lainput stream y el output stream. los input stream se utiliza para leer datos de archivo (operación de lectura) y el output stream se utiliza para escribir en el archivo (operación de escritura).

Clases de E / S de C #

El espacio de nombres System.IO tiene varias clases que se utilizan para realizar numerosas operaciones con archivos, como crear y eliminar archivos, leer o escribir en un archivo, cerrar un archivo, etc.

La siguiente tabla muestra algunas clases no abstractas de uso común en el espacio de nombres System.IO:

No Señor. Clase de E / S y descripción
1

BinaryReader

Lee datos primitivos de una secuencia binaria.

2

BinaryWriter

Escribe datos primitivos en formato binario.

3

BufferedStream

Un almacenamiento temporal para un flujo de bytes.

4

Directory

Ayuda a manipular la estructura de un directorio.

5

DirectoryInfo

Se utiliza para realizar operaciones en directorios.

6

DriveInfo

Proporciona información para las unidades.

7

File

Ayuda a manipular archivos.

8

FileInfo

Se utiliza para realizar operaciones en archivos.

9

FileStream

Se utiliza para leer y escribir en cualquier ubicación de un archivo.

10

MemoryStream

Se utiliza para el acceso aleatorio a los datos transmitidos almacenados en la memoria.

11

Path

Realiza operaciones sobre la información de la ruta.

12

StreamReader

Se utiliza para leer caracteres de un flujo de bytes.

13

StreamWriter

Se utiliza para escribir caracteres en una secuencia.

14

StringReader

Se utiliza para leer desde un búfer de cadena.

15

StringWriter

Se utiliza para escribir en un búfer de cadena.

La clase FileStream

los FileStreamLa clase en el espacio de nombres System.IO ayuda a leer, escribir y cerrar archivos. Esta clase se deriva de la clase abstracta Stream.

Necesitas crear un FileStreamobjeto para crear un nuevo archivo o abrir un archivo existente. La sintaxis para crear unFileStream El objeto es el siguiente:

FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>,
   <FileAccess Enumerator>, <FileShare Enumerator>);

Por ejemplo, creamos un objeto FileStream F por leer un archivo llamado sample.txt as shown -

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
   FileShare.Read);
No Señor. Descripción de parámetros
1

FileMode

los FileModeEl enumerador define varios métodos para abrir archivos. Los miembros del enumerador FileMode son:

  • Append - Abre un archivo existente y coloca el cursor al final del archivo, o crea el archivo, si el archivo no existe.

  • Create - Crea un nuevo archivo.

  • CreateNew - Especifica al sistema operativo, que debe crear un nuevo archivo.

  • Open - Abre un archivo existente.

  • OpenOrCreate - Especifica al sistema operativo que debe abrir un archivo si existe, de lo contrario debe crear un nuevo archivo.

  • Truncate - Abre un archivo existente y trunca su tamaño a cero bytes.

2

FileAccess

FileAccess los enumeradores tienen miembros: Read, ReadWrite y Write.

3

FileShare

FileShare los enumeradores tienen los siguientes miembros:

  • Inheritable - Permite que un identificador de archivo pase la herencia a los procesos secundarios

  • None - Rechaza compartir el archivo actual

  • Read - Permite abrir el archivo para su lectura.

  • ReadWrite - Permite abrir el archivo para lectura y escritura.

  • Write - Permite abrir el archivo para escribir

Ejemplo

El siguiente programa demuestra el uso del FileStream clase -

using System;
using System.IO;

namespace FileIOApplication {
   class Program {
      static void Main(string[] args) {
         FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, 
            FileAccess.ReadWrite);
         
         for (int i = 1; i <= 20; i++) {
            F.WriteByte((byte)i);
         }
         F.Position = 0;
         for (int i = 0; i <= 20; i++) {
            Console.Write(F.ReadByte() + " ");
         }
         F.Close();
         Console.ReadKey();
      }
   }
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1

Operaciones de archivo avanzadas en C #

El ejemplo anterior proporciona operaciones de archivo simples en C #. Sin embargo, para utilizar los inmensos poderes de las clases C # System.IO, necesita conocer las propiedades y métodos de uso común de estas clases.

No Señor. Tema Descripción
1 Leer y escribir en archivos de texto

Implica leer y escribir en archivos de texto. losStreamReader y StreamWriter la clase ayuda a lograrlo.

2 Leer y escribir en archivos binarios

Implica leer y escribir en archivos binarios. losBinaryReader y BinaryWriter la clase ayuda a lograr esto.

3 Manipular el sistema de archivos de Windows

Le da a un programador de C # la capacidad de buscar y localizar archivos y directorios de Windows.