0324 File 클래스 (외부 파일 불러오기)
2021. 3. 24. 18:21ㆍC#/수업내용
public class App
{
public App()
{
string text=File.ReadAllText("./helloworld.txt");
Console.WriteLine(text);
}
}
(@"절대 경로 주소")
("./현재 경로 주소 파일.exe ")
직렬화 > 객체를 컴퓨터 언어로 101010 언어로 변경
JASON > 키+값 쌍으로 이루어진 데이터 포맷
shancarter.github.io/mr-data-converter/
위 사이트에서 엑셀 내용을 jason화 시키고
내용 그대로 복사,
위 사이트에서 내용 정렬,
코드 그대로 복사 후 메모장에서 .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 |