Invertir archivo binario V2 - Ejercicio de Programacion C# Sharp

Este ejercicio en C# consiste en crear un programa que "invierta" un archivo utilizando un FileStream. El programa debe crear un archivo con el mismo nombre que el archivo original, pero con la extensión ".inv" al final, y debe contener los mismos bytes que el archivo original, pero en orden inverso. Es decir, el primer byte del archivo resultante debe ser el último byte del archivo original, el segundo byte debe ser el penúltimo, y así sucesivamente, hasta que el último byte del archivo original aparezca en la primera posición del archivo resultante. Este ejercicio es una excelente manera de aprender a trabajar con flujos de archivos binarios y manipular los contenidos de un archivo a nivel de bytes en C#.

El programa debe usar un FileStream para leer el archivo original byte por byte y luego escribir los bytes en el archivo de salida en orden inverso. Este ejercicio también te enseña a trabajar con flujos de entrada y salida de datos, una habilidad esencial para manipular archivos en aplicaciones reales. Además, al finalizar el ejercicio, comprenderás cómo manejar archivos binarios y cómo invertir los contenidos de un archivo utilizando un flujo de datos.

Este ejercicio en particular es útil para entender cómo se pueden manipular archivos a un nivel más bajo en C#, utilizando clases como FileStream, que permiten leer y escribir datos binarios directamente en los archivos. Es una habilidad importante para trabajar con archivos grandes o en situaciones donde se requiere un control preciso sobre cómo se leen y escriben los datos en un archivo.

 Categoría

Administración de Archivos

 Ejercicio

Invertir Archivo Binario V2

 Objectivo

Crear un programa para "invertir" un archivo, utilizando un "FileStream": crear un archivo con el mismo nombre que termine en ".inv" y que contenga los mismos bytes que el archivo original pero en orden inverso (el primer byte será el último, el segundo será el penúltimo, y así sucesivamente, hasta el último byte del archivo original, que debe aparecer en la primera posición del archivo resultante).

Debe entregar solo el archivo ".cs", que debe contener un comentario con su nombre

 Ejemplo Ejercicio C#

 Copiar Código C#
// Import the necessary namespaces for file handling
using System;
using System.IO;

class InvertBinaryFile
{
    // Main method where the program starts
    static void Main(string[] args)
    {
        // Prompt the user to enter the path of the binary file
        Console.WriteLine("Enter the path of the binary file:");

        // Get the file path from user input
        string filePath = Console.ReadLine();

        // Check if the file exists
        if (File.Exists(filePath))
        {
            // Create the path for the new file by appending ".inv" to the original file name
            string invertedFilePath = Path.ChangeExtension(filePath, ".inv");

            try
            {
                // Open the original file for reading in binary mode
                using (FileStream inputFile = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    // Get the length of the file
                    long fileLength = inputFile.Length;

                    // Open the new file for writing in binary mode
                    using (FileStream outputFile = new FileStream(invertedFilePath, FileMode.Create, FileAccess.Write))
                    {
                        // Loop through the original file from the last byte to the first byte
                        for (long i = fileLength - 1; i >= 0; i--)
                        {
                            // Move the read position to the current byte in the input file
                            inputFile.Seek(i, SeekOrigin.Begin);

                            // Read the byte at the current position
                            byte[] byteToWrite = new byte[1];
                            inputFile.Read(byteToWrite, 0, 1);

                            // Write the byte to the output file
                            outputFile.Write(byteToWrite, 0, 1);
                        }
                    }
                }

                // Inform the user that the file has been successfully inverted
                Console.WriteLine("The binary file has been successfully inverted.");
            }
            catch (Exception ex)  // Catch any errors that occur
            {
                // Output an error message if an exception is thrown
                Console.WriteLine("An error occurred: " + ex.Message);
            }
        }
        else
        {
            // Inform the user if the specified file doesn't exist
            Console.WriteLine("The specified file does not exist.");
        }
    }
}

 Salida

Let’s say the user has a binary file named example.bin with the following content (in hexadecimal representation):
01 02 03 04 05

The program will create a new file named example.inv with the following content:
05 04 03 02 01

If the user provides an incorrect file path or the file does not exist, the program will display:
The specified file does not exist.

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de Administración de Archivos

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Ancho y alto BMP, FileStream

    Este ejercicio en C# consiste en crear un programa que lea un archivo BMP utilizando un FileStream y muestre su ancho y alto. El formato BMP tien...

  •  Copiador de archivos

    Este ejercicio en C# consiste en crear un programa que copie un archivo de origen a un archivo de destino utilizando un FileStream y un tamaño de bloque de 512...

  •  Lector de MP3

    Este ejercicio en C# trata sobre las especificaciones ID3, que se aplican a cualquier archivo o contenedor audiovisual, pero se utilizan principalmente con contenedor...

  •  Conversor de C a C#

    Este ejercicio consiste en crear un programa que convierta programas simples en C a C#, como el siguiente ejemplo, asegurando que el programa resultante compil...

  •  Divisor de archivos

    Este ejercicio consiste en crear un programa que divida un archivo (de cualquier tipo) en partes de un tamaño específico. El programa debe recibir como parámetros el nombre ...

  •  Cifrar un archivo BMP

    Este ejercicio consiste en crear un programa que encripte y desencripte un archivo de imagen BMP cambiando la marca "BM" en los primeros dos bytes a "MB" y viceversa. Para e...