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());
      } 
  }

+ Recent posts