0324 File 클래스 (외부 파일 불러오기)

2021. 3. 24. 18:21C#/수업내용

public class App
    {
        public App()
        {
            string text=File.ReadAllText("./helloworld.txt");
            Console.WriteLine(text);
        }
    }

(@"절대 경로 주소")

("./현재 경로 주소 파일.exe ")

 

직렬화 > 객체를 컴퓨터 언어로 101010 언어로 변경

JASON > 키+값 쌍으로 이루어진 데이터 포맷

 

 

 

shancarter.github.io/mr-data-converter/

 

Mr. Data Converter

 

shancarter.github.io

위 사이트에서 엑셀 내용을 jason화 시키고

내용 그대로 복사, 

jsonviewer.stack.hu/

 

Online JSON Viewer

 

jsonviewer.stack.hu

위 사이트에서 내용 정렬,

코드 그대로 복사 후 메모장에서 .json 포멧으로 저장

파일 ReadAllText 메서드를 써서 텍스트 불러오기

 

 

도구>너겟 패키지>너겟 패키지 관리자>찾아보기>json 검색>Newtonsoft 설치

 

역직렬화

public class App
    {
        public App()
        {
            string text=File.ReadAllText("./weapon_data.json");
            Console.WriteLine(text);

            //역직렬화
            WeaponData[] arrWeaponData=JsonConvert.DeserializeObject<WeaponData[]>(text);

            //foreach (WeaponData data in arrWeaponData) 
            //{
            //    Console.WriteLine("{0} {1} {2}", data.id, data.name, data.damage);
            //    dicWeaponDatas.Add(data.id, data);
            //
            
            //사전에 요소 담기
            Dictionary<int, WeaponData> dicWeaponDatas;
            dicWeaponDatas = arrWeaponData.ToDictionary(x => x.id);
            Console.WriteLine();

            Console.WriteLine("============Dictionary============");
            //출력
            foreach (KeyValuePair<int, WeaponData> pair in dicWeaponDatas) 
            {
                WeaponData data = pair.Value;
                Console.WriteLine("{0} {1} {2}", data.id, data.name, data.damage);
            }
            Console.WriteLine();

            Console.WriteLine("============사전에서 키로 요소 가져오기============");
            //사전에서 키로 요소 가져오기
            WeaponData bowData = dicWeaponDatas[102];
            Console.WriteLine("{0} {1} {2}", bowData.id, bowData.name, bowData.damage);
        }
    }

 

 

 

public class App
    {
        public App()
        {
            string text = File.ReadAllText(@"C:\Users\TJOEUN\Desktop\cookie_data.json");
            Console.WriteLine(text);

            CookieData[] arrCookieDatas = JsonConvert.DeserializeObject<CookieData[]>(text);

            Dictionary<int, CookieData> dicCookieDatas;
            dicCookieDatas = arrCookieDatas.ToDictionary(x => x.id);

            Console.WriteLine("============Dictionary============");
            foreach (KeyValuePair<int, CookieData> pair in dicCookieDatas) 
            {
                CookieData data = pair.Value;
                Console.WriteLine("{0} {1} {2} {3} {4} {5}", data.id, data.name, data.hp, data.skill_name, data.grade, data.sprite_name);
            }
            Console.WriteLine();

            Console.WriteLine("============사전에서 키로 요소 가져오기============");
            CookieData gumData = dicCookieDatas[101];
            Console.WriteLine("{0} {1} {2} {3} {4} {5}", gumData.id, gumData.name, gumData.hp, gumData.skill_name, gumData.grade, gumData.sprite_name);
        }
        
    }

 

 

 

public App()
        {
            string text = File.ReadAllText(@"C:\Users\TJOEUN\Desktop\blackCloud_deck.json");
            Console.WriteLine(text);

            BlackCloud_DeckData[] arrBlackCloudData = JsonConvert.DeserializeObject<BlackCloud_DeckData[]>(text);

            Dictionary<int, BlackCloud_DeckData> dicBlackCloudDatas;
            dicBlackCloudDatas = arrBlackCloudData.ToDictionary(x => x.id);

            Console.WriteLine("============Dictionary============");
            foreach (KeyValuePair<int, BlackCloud_DeckData> pair in dicBlackCloudDatas)
            {
                BlackCloud_DeckData data = pair.Value;
                Console.WriteLine("{0} {1} {2} {3} {4}", data.id, data.card_name, data.cost, data.attack_type, Convert.ToBoolean(data.debuff));
            }
            Console.WriteLine();

            Console.WriteLine("============사전에서 키로 요소 가져오기============");
            BlackCloud_DeckData dicStain = dicBlackCloudDatas[106];
            Console.WriteLine("{0} {1} {2} {3} {4}", dicStain.id, dicStain.card_name, dicStain.cost, dicStain.attack_type, Convert.ToBoolean(dicStain.debuff));
        }

 

 

 

public class App
    {
        public App() 
        {
            string text = File.ReadAllText(@"C:\Users\TJOEUN\Desktop\Aleph_EgoWeaponData.json");
            Console.WriteLine(text);

            Aleph_EgoWeaponData[] arrWeaponDatas = JsonConvert.DeserializeObject<Aleph_EgoWeaponData[]>(text);

            Dictionary<string, Aleph_EgoWeaponData> dicWeaponDatas;
            dicWeaponDatas = arrWeaponDatas.ToDictionary(x =>x .id);

            Console.WriteLine("============Dictionary============");
            foreach (KeyValuePair<string, Aleph_EgoWeaponData> pair in dicWeaponDatas) 
            {
                Aleph_EgoWeaponData data = pair.Value;
                Console.WriteLine("{0} {1} {2} {3} {4}", data.id, data.abnormality_name, (eAttackType)data.attack_type, data.ego_weapon, data.attack_speed);
            }

            Console.WriteLine();

            Console.WriteLine("============사전에서 키로 요소 가져오기============");
            Aleph_EgoWeaponData WhitenightData = dicWeaponDatas["T-03-46"];
            Console.WriteLine("{0} {1} {2} {3} {4}", WhitenightData.id, WhitenightData.abnormality_name, (eAttackType)WhitenightData.attack_type, WhitenightData.ego_weapon, WhitenightData.attack_speed);
        }
    }

 

 

'C# > 수업내용' 카테고리의 다른 글

0326 쿠키런 직렬화/역직렬화  (0) 2021.03.26
0325 싱글턴 패턴  (0) 2021.03.25
0324 복습  (0) 2021.03.24
0323 대리자를 이용해 다중 메서드 호출 Multicast delegate/delegate chaining  (0) 2021.03.23
0323 익명 함수  (0) 2021.03.23