본문 바로가기

프로그램/유니티 스크립트 소스

[유니티 스크립트 소스] 텍스트(txt) 파일 읽고 쓰기

728x90
반응형

1. 소스

텍스트(txt) 파일을 읽고 쓰는 소스입니다.

 

1.1 네임스페이스

 

네임스페이스
using System.IO; 

 

1.2 메서드

 

메서드 : 텍스트 파일 쓰기
void WriteTxt(string filePath, string message)
{
    DirectoryInfo directoryInfo = new DirectoryInfo(Path.GetDirectoryName(filePath));

    if (!directoryInfo.Exists)
    {
        directoryInfo.Create();
    }

    FileStream fileStream
        = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write);

    StreamWriter writer = new StreamWriter(fileStream, System.Text.Encoding.Unicode);

    writer.WriteLine(message);
    writer.Close();
}

 

메서드 : 텍스트 파일 읽기
string ReadTxt(string filePath)
{
    FileInfo fileInfo = new FileInfo(filePath);
    string value = "";

    if (fileInfo.Exists)
    {
        StreamReader reader = new StreamReader(filePath);
        value = reader.ReadToEnd();
        reader.Close();           
    }

    else
        value = "파일이 없습니다.";

    return value;
}

 

 

2. 데모

using UnityEngine;
using System.IO;

public class DemoTxtFile : MonoBehaviour
{
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.W))
        {
            string filePath = Path.Combine(Application.streamingAssetsPath, "Example.txt");
            string message = "I love me !!";

            WriteTxt(filePath, message);
        }

        if (Input.GetKeyDown(KeyCode.R))
        {
            string filePath = Path.Combine(Application.streamingAssetsPath, "Example.txt");
            Debug.Log(ReadTxt(filePath));
        }
    }

    void WriteTxt(string filePath, string message)
    {
        DirectoryInfo directoryInfo = new DirectoryInfo(Path.GetDirectoryName(filePath));

        if (!directoryInfo.Exists)
        {
            directoryInfo.Create();
        }

        FileStream fileStream
            = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write);

        StreamWriter writer = new StreamWriter(fileStream, System.Text.Encoding.Unicode);

        writer.WriteLine(message);
        writer.Close();
    }

    string ReadTxt(string filePath)
    {
        FileInfo fileInfo = new FileInfo(filePath);
        string value = "";

        if (fileInfo.Exists)
        {
            StreamReader reader = new StreamReader(filePath);
            value = reader.ReadToEnd();
            reader.Close();           
        }

        else
            value = "파일이 없습니다.";

        return value;
    }
}

 

728x90
반응형