Q1.C#에서 외부파일 경로 설정?
A1.
using System.IO; //파일 입출력시 해당 네임스페이스 필요함
//빌드하는 폴더 안에 "SaveFolder"라는 명칭의 폴더 생성
Directory.CreateDirectory("SaveFolder");
//경로 설정하기
//Path.Combine(string path1,string path2) 은 .NET 프레임워크에서 제공하는 메서드이다
//path1 폴더 경로를 , path2는 파일 이름을 작성하면 해당 경로를 문자열로 반환해준다.
//직접 경로를 작성 할 수 있지만 지금처럼 작성하면 ,다른 유저의 컴퓨터에서도 원활하게 접속이 가능해진다
string filePaths = Path.Combine("SaveFolder","playerSave.txt");
Q2.C#에서 .txt파일 읽기?
A2.
//보통 외부 파일을 읽거나 쓸때 파일을 열고 작업을 다한 뒤 닫아줘야한다.
//하지만 c#에서는 using 메서드를 사용하면 해당 작업 중에 열려있고
//작업을 완료하면 자동으로 닫히게 된다.
using (StreamReader reader = new StreamReader(filePaths))
{
//filePaths에 있는 .txt 파일을 읽는 코드 작성
List<string> loadItemData = new List<string>(); //.txt 파일을 읽은 데이터를 저장
//스트림의 끝(End of Stream)**에 도달했는지를 확인하는 조건
//즉, 읽는 .txt파일의 끝이 도달할때까지 반복문이 돌아간다.
while (reader.EndOfStream == false)
{
//.txt 파일의 문자열을 한줄을 가져오는 메서드
string readData = reader.ReadLine();
//Split을 이용한 데이터 분리 후
string[] readDatas = readData.Split(',');
//Item변수에 관련된 데이터 초기화
ItemID id = (ItemID)int.Parse(readDatas[0]);
bool equip = readDatas[1] == "true" ? true : false ;
string name = readDatas[2];
string valueLabel = readDatas[3];
float value = float.Parse(readDatas[4]);
string info = readDatas[5];
int count = int.Parse(readDatas[6]);
int countMax = int.Parse(readDatas[7]);
int buyGold = int.Parse(readDatas[8]);
}
}
Q3.C#에서 .txt파일 쓰기?
A3.
//쓰기 스트림을 호출 후 없으면 해당경로(filePaths)에 파일을 생성
using (StreamWriter writer = File.CreateText(filePaths))
{
//문자열을 하치기 위해 StringBuilder를 호출 (미리 만들어둔 클래스에서 호출된것)
StringBuilder builder = StrBuild.strBuilder;
//Player class의 Item List를 가져와서 초기화 하는 코드내용
foreach (KeyValuePair<ItemID,Item> itemData in player.Items)
{
builder.Clear();
builder.Append($"{(int)itemData.Key},");
builder.Append($"{itemData.Value.Equip},");
builder.Append($"{itemData.Value.Name},");
builder.Append($"{itemData.Value.ValueLabel},");
builder.Append($"{itemData.Value.Value},");
builder.Append($"{itemData.Value.Info},");
builder.Append($"{itemData.Value.Count},");
builder.Append($"{itemData.Value.CountMax},");
builder.Append($"{itemData.Value.BuyGold},");
//.txt파일에 해당 문자열을 저장하는 메서드
writer.WriteLine(builder.ToString());
}
}
'내일배움캠프_Unity_6기 > TIL(Today I Learend)' 카테고리의 다른 글
TIL : 2024-09-26(목) :: GitHub 협업시 코드컨벤션 (0) | 2024.09.26 |
---|---|
TIL : 2024-09-24(화) :: 정렬 알고리즘(C#구현) (0) | 2024.09.24 |
TIL : 2024-09-20(금) :: C# 기초 문법 2주차 (0) | 2024.09.20 |
TIL : 2024-09-19(목) :: C# 기초 문법 1주차 (0) | 2024.09.19 |
TIL : 2024-09-13(금) :: C++ 오버플로우를 합동식(정수론)으로 해결하기 (0) | 2024.09.13 |