상세 컨텐츠

본문 제목

텍스트 파일에 저장및 로드

C#

by 메타 스토리 2023. 9. 5. 15:22

본문

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dataDirectory = @"C:\MyData"; // 원하는 경로로 수정

        // 데이터 저장
        string filePath = Path.Combine(dataDirectory, "data.txt");
        SaveDataToFile(filePath);

        // 데이터 로드
        string loadedData = LoadDataFromFile(filePath);
        Console.WriteLine("Loaded Data:");
        Console.WriteLine(loadedData);
    }

    static void SaveDataToFile(string filePath)
    {
        string dataToSave = "This is some data to save in a text file.";
        
        try
        {
            Directory.CreateDirectory(Path.GetDirectoryName(filePath));
            File.WriteAllText(filePath, dataToSave);
            Console.WriteLine("Data saved to file.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error saving data to file: " + ex.Message);
        }
    }

    static string LoadDataFromFile(string filePath)
    {
        try
        {
            if (File.Exists(filePath))
            {
                string loadedData = File.ReadAllText(filePath);
                return loadedData;
            }
            else
            {
                Console.WriteLine("File does not exist.");
                return string.Empty;
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error loading data from file: " + ex.Message);
            return string.Empty;
        }
    }
}
위 코드에서 dataDirectory 변수를 원하는 절대 경로로 수정하고, filePath를 생성할 때 이 디렉터리와 파일 이름을 조합하여 파일의 경로를 정확하게 지정합니다. 이렇게 수정한 코드를 사용하면 원하는 경로에 데이터를 저장하고 로드할 수 있습니다.


using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dataDirectory = @"C:\MyData"; // 원하는 경로로 수정

        // 데이터 저장
        string filePath = Path.Combine(dataDirectory, "data.txt");
        SaveDataToFile(filePath);

        // 데이터 로드
        string loadedData = LoadDataFromFile(filePath);
        Console.WriteLine("Loaded Data:");
        Console.WriteLine(loadedData);
    }

    static void SaveDataToFile(string filePath)
    {
        string dataToSave = "This is some data to save in a text file.";
        
        try
        {
            Directory.CreateDirectory(Path.GetDirectoryName(filePath));
            File.WriteAllText(filePath, dataToSave);
            Console.WriteLine("Data saved to file.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error saving data to file: " + ex.Message);
        }
    }

    static string LoadDataFromFile(string filePath)
    {
        try
        {
            if (File.Exists(filePath))
            {
                string loadedData = File.ReadAllText(filePath);
                return loadedData;
            }
            else
            {
                Console.WriteLine("File does not exist.");
                return string.Empty;
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error loading data from file: " + ex.Message);
            return string.Empty;
        }
    }
}
위 코드에서 dataDirectory 변수를 원하는 절대 경로로 수정하고, filePath를 생성할 때 이 디렉터리와 파일 이름을 조합하여 파일의 경로를 정확하게 지정합니다. 이렇게 수정한 코드를 사용하면 원하는 경로에 데이터를 저장하고 로드할 수 있습니다.


다음은 파일 경로를 절대 경로로 수정한 코드 예제입니다. 이 코드는 현재 작업 디렉토리에 있는 파일을 사용합니다.


using System;
using System.IO;

class Program
{
    static void Main()
    {
        string currentDirectory = Directory.GetCurrentDirectory(); // 현재 작업 디렉토리 가져오기
        string fileName = "data.txt";
        string filePath = Path.Combine(currentDirectory, fileName); // 절대 경로 생성

        // 데이터 저장
        SaveDataToFile(filePath, "Hello, World!");

        // 데이터 로드
        string loadedData = LoadDataFromFile(filePath);
        Console.WriteLine("Loaded Data: " + loadedData);
    }

    static void SaveDataToFile(string filePath, string data)
    {
        try
        {
            using (StreamWriter writer = new StreamWriter(filePath))
            {
                writer.Write(data);
                Console.WriteLine("Data saved to text file.");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error saving data to file: " + ex.Message);
        }
    }

    static string LoadDataFromFile(string filePath)
    {
        try
        {
            if (File.Exists(filePath))
            {
                using (StreamReader reader = new StreamReader(filePath))
                {
                    string loadedData = reader.ReadToEnd();
                    return loadedData;
                }
            }
            else
            {
                Console.WriteLine("File does not exist.");
                return null;
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error loading data from file: " + ex.Message);
            return null;
        }
    }
}
위 코드에서는 Path.Combine 메서드를 사용하여 현재 작업 디렉토리와 파일 이름을 결합하여 절대 경로를 생성합니다. 이렇게 하면 현재 작업 디렉토리에 있는 파일을 사용하게 됩니다.



텍스트 파일을 수정하려면 먼저 해당 파일의 내용을 읽어야 하고, 수정할 내용을 적용한 다음 파일을 다시 쓰는 작업을 수행해야 합니다. 아래는 텍스트 파일을 수정하는 예제입니다.

using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 텍스트 파일의 경로 (절대 경로로 수정)
        string filePath = @"C:\Path\To\Your\File.txt";

        // 파일 내용 읽기
        string[] lines = File.ReadAllLines(filePath);

        // 수정할 텍스트를 찾고 수정
        for (int i = 0; i < lines.Length; i++)
        {
            if (lines[i].Contains("OldTextToReplace"))
            {
                // 원하는 텍스트로 수정
                lines[i] = lines[i].Replace("OldTextToReplace", "NewText");
            }
        }

        // 수정된 내용을 파일에 쓰기
        File.WriteAllLines(filePath, lines);

        Console.WriteLine("텍스트 파일이 수정되었습니다.");
    }
}
이 코드는 지정된 텍스트 파일에서 "OldTextToReplace"라는 텍스트를 찾아 "NewText"로 수정한 후, 수정된 내용을 파일에 다시 씁니다. 파일 경로를 절대 경로로 수정하여 사용하십시오.


StreamWriter와 StreamReader를 사용한 파일 처리의 다른 예제를 보여드릴게요. 아래는 StreamWriter와 StreamReader를 사용하여 텍스트 파일에 데이터를 쓰고 읽는 예제입니다.

using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 텍스트 파일의 경로 (절대 경로로 수정)
        string filePath = @"C:\Path\To\Your\TextFile.txt";

        // 파일에 데이터 쓰기
        using (StreamWriter writer = new StreamWriter(filePath))
        {
            writer.WriteLine("첫 번째 줄 데이터");
            writer.WriteLine("두 번째 줄 데이터");
            writer.WriteLine("세 번째 줄 데이터");
        }

        Console.WriteLine("파일에 데이터를 씀.");

        // 파일에서 데이터 읽기
        using (StreamReader reader = new StreamReader(filePath))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                Console.WriteLine(line);
            }
        }

        Console.WriteLine("파일에서 데이터를 읽음.");
    }
}
이 코드는 지정된 텍스트 파일에 세 개의 줄을 쓰고, 그 후에 파일에서 데이터를 읽어와 출력합니다. 파일 경로를 수정하여 사용하세요.


'C#' 카테고리의 다른 글

StreamWriter 와 FileStream 그리고 BinaryWriter  (0) 2023.09.06
이진 파일에 데이터 저장 및 로드  (0) 2023.09.05
Entity Framework  (0) 2023.09.05
LINQ 쿼리  (0) 2023.09.05
foreach를 사용할 수 있는 일반화 클래스 -2  (0) 2023.09.05

관련글 더보기