Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/137: Рейтинг темы: голосов - 137, средняя оценка - 4.78
 Аватар для Mdh
1 / 1 / 0
Регистрация: 12.02.2012
Сообщений: 8

Как осуществить дозапись в файл

08.09.2012, 20:20. Показов 25322. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Столкнулся с очередной проблемой. Моя задача - записать в файл данные. Самый простой пример:
C#
1
2
3
4
5
6
private void button1_Click(object sender, EventArgs e)
        {
            StreamWriter sw = new StreamWriter("C://data.file");
            sw.WriteLine("line");
            sw.Close();
        }
Допустим, что записываемая строка меняется с каждым щелчком по кнопке и мне нужно сохранить это значение и предыдущее в файле. По какой-то причине новая строка не записывается после старой строки, а перезаписывает старую строчку. Как мне реализовать желаемую задачу?

Добавлено через 21 минуту
Проблема решена. Спасибо модератору за то, что он переименовал тему. Именно из-за этого я нашел ответ.
C#
1
System.IO.File.AppendAllText()
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.09.2012, 20:20
Ответы с готовыми решениями:

Как осуществить запись(дозапись) в файл в отдельном потоке и закрыть его после записи?
Здравствуйте! Вопрос в названии темы! Подробнее планирую записывать(дозаписывать) в файл массив double doubleArray. Этот массив будет...

Осуществить дозапись в файл
В общем есть 2 кнопки. На одной мне надо записать в файл 4 символа (пусть будет qwer) так, чтобы строчка осталась на месте. Просто у меня...

Осуществить дозапись в файл
Здравствуйте. У меня такая проблема. Пишу игру, в ней надо записывать результаты игры. Как бы создаю таблицу рекордов. Записываю в...

6
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,246
08.09.2012, 20:22
так пробуйте:
C#
1
2
using (StreamWriter writer = File.AppendText("C://data.file"))
                writer.WriteLine("line");
и, я могу ошибаться, но Close незачем вызвать, using сам закрыть должен
1
78 / 78 / 11
Регистрация: 02.12.2011
Сообщений: 296
08.09.2012, 23:07
...вот пример дозаписи или перезаписи файла с созданием (при их отсутствии) каталога и файла...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System;
using System.Collections.Generic;
using System.Linq;
/* При рааботе с фаловой системой обязательно подключать
 * пространство имён "using System.IO" */
using System.IO;
using System.Text;
 
namespace Base_Output1
{
 class Program
  {
   static void Main(string[] args)
    {
     /* Для создания папки "DataTime", вначале передаём конструктору 
      * класса DirectoryInfo имя директории для обработки. В нашем
      * случае это будет путь <проект> - <bin> - <debug> - <DataTime> */
        DirectoryInfo di = new DirectoryInfo("DataTime");
       try
         {
          // Проверяем существует ли, указанная папка
            if (di.Exists)
             {
              // Если - да, сообщаем об этом
                 Console.WriteLine("\nПапка DataTime уже существует");
                goto Label1;
             }
          // Если - нет, создаём её
            else
             {
                di.Create();
                Console.WriteLine("\nСоздание папки прошло успешно");
               goto Label1;
             }
         }
   finally { }
 
   Label1:
    /* Объявляем строковую переменную "path", 
     * которая описывает путь к файлу */
       string path = @"DataTime\\OutputTime.txt";
      if (File.Exists(path))
       {
        // Если - да, то сообщаем об этом
           Console.WriteLine("\nФайл OutputTime.txt существует\n");
           Console.ReadKey();
          goto Label2;
       }
      else
       {
        // Если - нет, тоже сообщаем 
           Console.WriteLine("\nФайл Output.txt отсутствует!\nПриложение автоматически создаст его!\n");
          goto Label2;
       }
 
   Label2:
    /* В аргументах инициализатора нового экземпляра класса, наряду с
     * переменной "path", нужно указать свойство "true" - разрешена
       дозапись в существующий файл или "false" - переписать файл*/
       StreamWriter sw = new StreamWriter(path, true);
       sw.WriteLine();
    // Записываем текущие дату и время в файл
       sw.WriteLine("Текущие дата и время (время UTC):  " + DateTime.UtcNow.ToString());
       Console.WriteLine("\nТекущая дата и время:  " + DateTime.UtcNow.ToString());
    /* Перед выходом из приложения не забываем закрывать файл */
       sw.Close();
       Console.ReadKey();
     }
  }
}
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
08.09.2012, 23:31
Simulkin Stas,

Не по теме:

никогда не занимайтесь больше программированием. Это может пагубно сказаться на желание ваших окружающих взять в руки что-нибудь тяжелое и тупое.

0
Java, C# - Expert
 Аватар для IceSqueez
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284
09.09.2012, 06:50
C#
1
2
3
4
5
6
7
8
try
{
          ...
}
finally
{
 
}
а где блок catch ? смысл тогда с try ?
Насколько я знаю то существует 2 вида блока try:
1 : try{..}catch(){}
2 : try{..}catch(){}finally{}

но не как try{..}finally{}


По теме:
C#
1
2
3
4
string fileName = "C://data.file";
StreamWriter sw = new StreamWriter(File.Open(fileName, FileMode.Append));
sw.WriteLine("line");
sw.Close();
FileMode.Append - открывает файл на дозапись, и записывает (насколько я помню, могу ошибаться) в конец файла.
0
78 / 78 / 11
Регистрация: 02.12.2011
Сообщений: 296
09.09.2012, 08:32
а где блок catch ? смысл тогда с try?

...в блок finally вставляем код, с привязкой под конкретную задачу; в простешем случае это может быть:
C#
1
Console.WriteLine("\nИсключение успешно обработано\n");
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
09.09.2012, 10:25
Psilon, А мне понравился вариант с метками. Немного подправить,добавить using,блоки и ничем не отличишь от обычной ООП надстройки)

Simulkin Stas, беру себе ваш пример)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.09.2012, 10:25
Помогаю со студенческими работами здесь

Как производить дозапись в файл
Взял себе задание на экз: написать программу, проверяющую _локальный_ сайт на наличие _внутренних_ битых ссылок. ( Консольный С# ) ...

Как осуществить дозапись в уже имеющийся файл
Здравствуйте Как добавить запись в файл с расширением &quot;txt&quot; но при этом чтобы другие не удалялись ? И также отдельной командой...

Как совершить дозапись в бинарный файл
Имеется бинарный файл как в этот файл дописать данные из другого бинарника не заменяя?

Как произвести дозапись в файл Excel
всем доброго времени суток! подскажите как дозаписывать в xls-файл (запись в конец), ато находил только как в определенную ячейку. и...

Как осуществить дозапись в файл
Проблема следующая: Когда запускаю следующую программу и печатаю в файл example.dat несколько раз (После каждого раза вставляю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru