IT/공부 정리

[Unity] 텍스트 파일 생성, 쓰기 및 저장 / 입력받은 텍스트로 텍스트파일 만들기

rinix_x 2022. 3. 31. 07:14
반응형

안녕하세요 rini🌙입니다.

유니티에서 파일 입출력하는 방법을 알아보겠습니다.

저는 입력받은 텍스트로 텍스트 파일을 만들 예정입니다. 

반응형

먼저 파일 입출력하기 위해 헤더 파일을 넣어줍니다.

using System.IO;

 

그러고 나서 파일이 생성되었으면 하는 위치의 주소와 이름을 적어줍니다.

저 같은 경우엔 여러 txt 파일을 생성할 예정이라 폴더 이름만 지정해 줬습니다. (Assets폴더 안에 있는 ICPResult폴더 안에 넣어 줄 수 있도록 주소를 적어주었습니다.)

그리고 입력받은 텍스트로 텍스트 파일을 만들 것이라 InputField도 선언해주었습니다.

    string icpPth = "Assets/ICPResult/";
    public InputField InputField;

 

그다음엔 텍스트 파일을 생성합니다.

 int n = 0;
        do
        {
            if (false == File.Exists(icpPth + InputField.text + "_" + n.ToString() + ".txt"))
            {
                var file = File.CreateText(icpPth + InputField.text + "_" + n.ToString() + ".txt");
                file.Close();
                break;
            }
            else n++;
        } while (true);

이름이 겹쳐도 "test_0.txt"이런 식으로 덮어씌우기가 아닌 새로 텍스트 파일이 만들어지게 하고 싶어 int형 변수를 추가하고 do while문을 이용했습니다. (while문만 이용해도 됩니다.ㅎㅎ)

File.Exists를 통해 해당 이름이 있는지 확인을 해줍니다. 그리고 false, 없으면 CreateText를 통해 해당 이름의 txt 파일을 생성해줍니다. 저렇게 새로 만드시는 게 싫으시다면 아래 코드만 적어도 됩니다.

 if (false == File.Exists(icpPth + InputField.text + "_" + n.ToString()+".txt"))
            {
                var file = File.CreateText(icpPth + InputField.text + "_" + n.ToString() + ".txt");
                file.Close();
            }

file.Close()를 하는 이유는 생성 후 파일을 닫아주기 위해 했습니다.

 

파일에 정보를 쓰기 위해서는

SteamWriter와 WriteLine을 이용합니다.

StreamWriter sw = new StreamWriter(icpPth + InputField.text+ "_" + n.ToString() + ".txt");

        sw.WriteLine("dat");
        sw.WriteLine("dataaa");
        sw.Flush();
        sw.Close();

StreamWriter를 통해 쓰고 싶은 파일을 열고, WriteLine을 통해 쓰고 싶은 내용을 적습니다.

Flush()와 Close를 통해 파일을 닫아주면 됩니다.

 

실행결과

위와 같이 저장이 잘 되는 것을 확인할 수 있습니다. 

 

반응형