다음을 통해 공유


파일 I/O(C# 및 Java)

업데이트: 2007년 11월

클래스와 메서드 시그니처에 대한 세부 사항은 다를 수 있지만 C#과 Java에서는 파일 I/O 작업을 수행하기 위해 유사한 개념을 사용합니다. C#과 Java에는 모두 파일 클래스와 관련 파일 읽기 및 쓰기 메서드에 대한 개념이 있습니다. XML 내용을 처리하기 위한 유사한 DOM(Document Object Model)도 있습니다.

Java 파일 작업 예제

Java에서는 File 개체를 사용하여 파일 만들기, 열기, 닫기, 읽기, 쓰기 등의 기본적인 파일 I/O 작업을 수행할 수 있습니다. 예를 들어, File 클래스의 createNewFile 또는 delete 메서드를 사용하여 파일을 만들거나 삭제하는 경우와 같이 File 클래스의 메서드를 사용하여 파일 I/O 작업을 수행할 수 있습니다. BufferedReader 및 BufferedWriter 클래스를 사용하여 파일의 내용을 읽고 쓸 수 있습니다.

다음 코드 예제에서는 새 파일을 만들고, 파일을 삭제하고, 파일의 텍스트를 읽고, 파일에 쓰는 방법을 보여 줍니다.

// Java example code to create a new file
    try 
    {
        File file = new File("path and file_name");
        boolean success = file.createNewFile();
    }
    catch (IOException e)    {   }

// Java example code to delete a file.
    try 
    {
        File file = new File("path and file_name");
        boolean success = file.delete();
    } 
    catch (IOException e)    {    }

// Java example code to read text from a file.
    try 
    {
        BufferedReader infile = new BufferedReader(new FileReader("path and file_name "));
        String str;
        while ((str = in.readLine()) != null) 
        {
            process(str);
        }
        infile.close();
    } 
    catch (IOException e) 
    {
        // Exceptions ignored.
    }

// Java example code to writing to a file.
    try 
    {
        BufferedWriter outfile = 
          new BufferedWriter(new FileWriter("path and file_name "));
        outfile.write("a string");
        outfile.close();
    }
    catch (IOException e)    {    }

C# 파일 작업 예제

C#의 경우 .NET Framework에서 동일한 기능을 수행하는 클래스와 메서드를 사용하여 파일 만들기, 열기, 닫기, 읽기, 쓰기 등의 기본적인 파일 I/O 작업을 수행할 수 있습니다. 예를 들어, .NET Framework File 클래스의 메서드를 사용하여 파일 I/O 작업을 수행할 수 있습니다. 예를 들어, Exists 메서드를 사용하여 파일이 있는지 검사할 수 있습니다. Create 메서드를 사용하여 파일을 만들 수 있고, 다음 코드 예제에서 볼 수 있듯이 선택에 따라 기존 파일을 덮어쓸 수 있으며, FileStream 클래스와 BufferedStream 개체를 사용하여 파일을 읽고 쓸 수 있습니다.

다음 코드 예제에서는 파일을 삭제하고, 파일을 만들고, 파일에 쓰고, 파일에서 읽는 방법을 보여 줍니다.

// sample C# code for basic file I/O operations
// exceptions ignored for code simplicity

class TestFileIO
{
    static void Main() 
    {
        string fileName = "test.txt";  // a sample file name

        // Delete the file if it exists.
        if (System.IO.File.Exists(fileName))
        {
            System.IO.File.Delete(fileName);
        }

        // Create the file.
        using (System.IO.FileStream fs = System.IO.File.Create(fileName, 1024)) 
        {
            // Add some information to the file.
            byte[] info = new System.Text.UTF8Encoding(true).GetBytes("This is some text in the file.");
            fs.Write(info, 0, info.Length);
        }

        // Open the file and read it back.
        using (System.IO.StreamReader sr = System.IO.File.OpenText(fileName)) 
        {
            string s = "";
            while ((s = sr.ReadLine()) != null) 
            {
                System.Console.WriteLine(s);
            }
        }
    }
}

관련 단원

스트림에 대한 만들기, 읽기 및 쓰기 작업에 유용한 .NET Framework 클래스로는 StreamReaderStreamWriter 클래스가 있습니다. 파일을 처리하는 데 유용한 기타 .NET Framework 클래스에는 다음과 같은 것이 있습니다.

참고 항목

개념

C# 프로그래밍 가이드

비동기 파일 I/O

기타 리소스

Java 개발자를 위한 C#