c#/수업 과제

직렬화

yeeendy 2023. 1. 13. 02:11
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;

namespace Homework
{
    class App
    {
        //생성자
        public App()
        {
            Item item = new Item() { Name = "장검", Damage = 10 };
            //스트림을 만든다
            Stream stream = new FileStream("./my_item.dat", FileMode.Create);
            //객체를 직렬화 한다.
            BinaryFormatter bf = new BinaryFormatter();
            bf.Serialize(stream, item);
            //스트림을 닫는다.
            stream.Close();

        }
    }
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;

namespace Homework
{
    class App
    {
        //생성자
        public App()
        {
            Item item = new Item() { Name = "장검", Damage = 10 };
            //스트림을 만든다.
            using (Stream stream = new FileStream("./my_item.dat", FileMode.Create))
            {
                //객체를 직렬화 한다.
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(stream, item);
            }//자동으로 스트림이 닫힘

        }
    }
}

개념이해가 아직 안 됐다. 그냥 외우자..

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

using Newtonsoft.Json;

namespace Homework
{
    class App
    {
        //생성자
        public App()
        {
            Item item = new Item() { Name = "아대", Damage = 10 };
            string json = JsonConvert.SerializeObject(item);
            Console.WriteLine(json);
            File.WriteAllText("./my_item.dat", json);

        }
    }
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

using Newtonsoft.Json;

namespace Homework
{
    class App
    {
        //생성자
        public App()
        {
            //객체를 만들고 직렬화 해서 JSON형식 (문자열) 파일로 저장 
            Item item = new Item("단검,", 5);
            //직렬화 : 아이템 객체를 넣어 주면 json문자열을 반환 
            string json = JsonConvert.SerializeObject(item);
            Console.WriteLine(json);
            //저장 
            File.WriteAllText("dagger.json", json);
        }
    }
}

 

'c# > 수업 과제' 카테고리의 다른 글

원격수업 c# 과제(인벤토리)  (1) 2023.01.25
역직렬화  (0) 2023.01.13
List<T> 를 이용한 인벤토리 만들기  (0) 2023.01.11
인벤토리 만들기2  (0) 2023.01.09
버스트  (0) 2023.01.06