profile
[/banner_gorizont_adaptive]
Размещено 3 года назад по предмету Информатика от stepush

Считывание/запись файла в С#. Пример с описанием​

  1. Ответ на вопрос
    Ответ на вопрос дан ЯковПервый

    Для чтения/записи файлов в C# можно использовать несколько подходов в зависимости от задачи. Например, если нужно вывести весь текст из файла в консоль - можно использовать File.ReadAllText(). Если же нужно форматировать каждую строку файла или, например, необходимо считывать текст файла по одному символу - можно использовать StreamReader. Разумеется, считывать с файла можно не только сплошной текст. Это могут быть байты, отдельные строки; опять же в зависимости от задачи. Аналогичная ситуация с записью в файл. Для записи используем File.WriteAllBytes() или StreamWriter. Классы File, StreamReader, StreamWriter и др. находятся в пространстве имен System.IO. Обязательно напишите строку кода: using System.IO; или обращайтесь к классу так: System.IO.File.ReadAllLines(); Также хочу сразу предотвратить возможную ошибку: если вы открываете файл для записи/чтения, не забудьте освободить ресурсы. Иначе файл так и останется открытым, и если к нему еще раз обратиться, то будет ошибка.  Для этого закрывайте файл или освобождайте ресурсы вручную: File.Create().Close(); или reader.Dispose(); Но есть возможность делать это автоматически. Для этого нужно использовать using как в моем коде.

    Для наглядности привожу пример программы. Задача: считать из файла имена людей и записать в другой файл отсортированный список. Затем взять сообщение из файла, закодировать, поместить закодированное сообщение в файл. Получить из файла закодированное сообщение, расшифровать и вывести в консоль. Для решения использовал основные приемы для чтения/записи файла. Также сделал краткие комментарии. Надеюсь, всё было понятно. Поскольку в ответе код скорее всего отформатируется криво, прикрепил фотографию с "красивым" кодом, а также фотографию входных и выходных файлов.

    Код:

    using System;

    using System.IO;

    using System.Text;

    using System.Collections.Generic;

    namespace ConsoleApp1

    {

       internal class Program

       {

           private static void Main(string[] args)

           {

               //Путь к входным и выходным файлам.

               const string inputPath1 = @"D:ProgramsTesterInput1.txt";

               const string inputPath2 = @"D:ProgramsTesterInput2.txt";

               const string outputPath1 = @"D:ProgramsTesterOutput1.txt";

               const string outputPath2 = @"D:ProgramsTesterOutput2.txt";

               //Список.

               List<string> items = new List<string>();

               //Использует StreamReader, а затем высвобождает ресурсы.

               using (StreamReader reader = new StreamReader(inputPath1))

               {

                   //Читает весь файл.

                   while (!reader.EndOfStream)

                   {

                       items.Add(reader.ReadLine());

                   }

               }

               //Сортировка массива.

               items.Sort();

               //Использует StreamWriter, а затем высвобождает ресурсы.

               using (StreamWriter writer = new StreamWriter(outputPath1))

               {

                   //Записывает отсортированный список в файл.

                   for (int i = 0; i < items.Count; i++)

                   {

                       writer.WriteLine(items[i]);

                   }

               }

               //Байты из файла, хранящего сообщение, записываются в массив байт.

               byte[] fileBytes = File.ReadAllBytes(inputPath2);

               //Запись закодированного сообщения в файл.

               File.WriteAllText(outputPath2, Convert.ToBase64String(fileBytes));

               //Вывод декодированного сообщения, полученного из файла.

               Console.WriteLine("Decoded text: " + Encoding.Default.GetString(Convert.FromBase64String(File.ReadAllText(outputPath2))));

               _ = Console.ReadKey();

           }

       }

    }

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 4 года назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.