Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 31
1

Запись данных класса в файл

18.11.2016, 07:02. Просмотров 2700. Ответов 1
Метки нет (Все метки)

Приветствую. Подскажите пожалуйста на счет такого вопроса.

Имеется класс, содержащий следующие атрибуты

C#
1
2
3
4
string name;
    int lvl;
    int hp;
    int money;
Я хочу записать их в файл, чтобы в дальнейшем можно было их подгрузить, не вводя заново. Для записи пробовал просто FileStream, но там что-то странное получается. Решил попробовать сделать это при помощи BinaryWriter

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public bool Save()
    {
        bool ok = true;
        
 
        BinaryWriter br = new BinaryWriter((new FileStream(Name + ".txt", FileMode.Create)));
        br.Write(name);
        br.Write('\n');
        br.Write(lvl);
        br.Write('\n');
        br.Write(hp);
        br.Write('\n');
        br.Write(money);
        br.Close();
        
 
        return ok;
    }
Вот код, который считывает данные из файла

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
public bool Load()
    {
        bool ok = true;
        FileStream fs = null;
        try
        {
            BinaryReader br = new BinaryReader(fs=new FileStream("Timer.txt",FileMode.Open));
            string test = "";
            test = br.ReadString();
            Console.WriteLine(test);
            int lvl = br.ReadInt32();
            Console.WriteLine(lvl);
            int hp = br.ReadInt32();
            Console.WriteLine(hp);
            int money = br.ReadInt32();
            Console.WriteLine(money);
            
            
 
        }
 
        catch (IOException exc)
        {
            Console.WriteLine(exc.Message);
        }
 
        return ok;
    }
}
Проблема в том, что строка Name считывается правильно, как и остальные строки, а вот с числами проблема. Выводится не совсем то, что нужно.
По идее после считывания должно вывестись
Timer
1
20
100

Но выводится
Timer
266
20
25610

Подскажите, от чего это. Вообще мне кажется, что это как-то по другому должно делаться, вся работа с файлами.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2016, 07:02
Ответы с готовыми решениями:

Запись данных класса в файл
Добрый день всем! Помоги разобраться как сделать. Есть класс. Нужно сделать ввод вывод элементов...

Запись данных класса в файл
Не могу никак разобраться что же я делаю не так. В общем есть написанный элементарный класс...

Запись в файл данных класса
Нужно сделать так что клас который наследовал записывал книгу в файл Вот мой код: #include...

Запись в файл данных из обьекта класса
подскажите пожалуйста,как записать данные из обьекта g4 в файл,что-то пытаюсь,но никак не могу...

1
Супер-модератор
Эксперт .NET
12400 / 10232 / 4254
Регистрация: 17.03.2014
Сообщений: 20,498
Записей в блоге: 1
18.11.2016, 08:27 2
DSLS, убери вызовы br.Write('\n');. При использовании BinaryReader/BinaryWriter нужно согласованно читать и записывать данные. Ты же записываешь строку, символ, число, символ, число, символ, число, а затем читаешь строку, число, число, число. Разумеется это приводит к получению неверных данных.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2016, 08:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Запись данных класса в бинарный файл
У меня был просто ввод-вывод в файл, но надо бинарный и мне выдает ошибку: "error 'class...

Запись класса в файл
Доброго времени суток! Вот появился тупик, есть базовый класс и производные классы class Figure{...

Запись класса в файл
О великие программисты работающие в среде Qt спасите помогите. Тут такое дело у меня есть класс...

Запись класса в файл
Приветствую. Я хочу записать битовую форму класса, но столкнулся с делемой. Насколько мне...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.