CodeGym /Java Blog /무작위의 /Java – 파일에 쓰기
John Squirrels
레벨 41
San Francisco

Java – 파일에 쓰기

무작위의 그룹에 게시되었습니다
소프트웨어 개발에서 가장 일반적인 작업 중 하나는 파일을 읽고 쓰는 능력입니다. Java에서 파일에 쓰는 것은 내장된 클래스와 메서드를 사용하여 수행할 수 있는 간단한 프로세스입니다. 이 기사에서는 Java를 사용하여 파일에 쓰는 방법을 살펴보고 관련된 다양한 클래스와 메서드에 대해 논의합니다. Java는 FileWriterPrintWriter 와 같은 내장 클래스를 제공하여 Java에서 파일에 쓸 수 있습니다.

Java 파일에 쓰기 예

먼저 Java로 파일에 쓰는 간단한 예를 살펴보겠습니다. 다음은 FileWriter 클래스 를 사용하여 Java에서 파일에 문자열을 쓰는 방법의 예입니다 .

FileWriter 클래스

FileWriter 클래스 Java에서 파일에 쓰는 또 다른 방법입니다. 문자 데이터를 파일에 쓸 수 있는 문자 스트림 클래스입니다. 다음은 FileWriter 클래스를 사용하여 문자열을 파일에 쓰는 방법을 보여주는 예입니다 .
import java.io.FileWriter;
import java.io.IOException;


// Main method for the string to file in java starts from here,
public class WriteToFileExample {
    public static void main(String[] args) {
        // create a string to write text to file
        String data = "Hello, world!";

        try {
            // create a FileWriter object with the file name
            FileWriter writer = new FileWriter("output.txt");

            // write the string to the file
            writer.write(data);

            // close the writer
            writer.close();

            System.out.println("Successfully wrote text to file.");

        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}
이 예에서는 먼저 파일에 쓰려는 텍스트가 포함된 data 라는 String 개체를 만듭니다 . 그런 다음 쓰려는 파일 이름(이 경우에는 output.txt )으로 FileWriter 개체를 만듭니다 . 다음으로 FileWriter 개체 의 write() 메서드를 사용하여 파일에 데이터 문자열을 씁니다 . 이 메서드는 쓸 데이터가 포함된 문자열 인수를 사용합니다. 마지막으로 FileWriter 개체를 닫아 파일 리소스를 해제하고 쓰기 작업이 성공하면 콘솔에 성공 메시지를 인쇄하고 예외가 발생하면 오류 메시지를 인쇄합니다. FileWriter 클래스는 Java에서 파일에 문자 데이터를 쓰는 간단한 방법입니다 .

FileOutputStream 클래스

FileOutputStream 클래스는 데이터를 바이트 스트림으로 파일에 쓰는 데 사용됩니다 . 예는 다음과 같습니다.
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            FileOutputStream stream = new FileOutputStream("output.txt");
            byte[] bytesToWrite = textToWrite.getBytes();
            stream.write(bytesToWrite);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
이 예에서는 쓰기 위해 "output.txt" 파일 이름을 사용하여 stream 이라는 FileOutputStream 개체를 만듭니다 . 그런 다음 getBytes() 메서드를 사용하여 textToWrite 문자열을 바이트 배열로 변환하고 write() 메서드를 사용하여 바이트 배열을 스트림 개체에 씁니다 . 마지막으로 스트림 객체를 닫습니다 .

BufferedWriter 클래스

BufferedWriter 클래스는 버퍼링 기능 사용하여 파일에 텍스트를 쓰는 데 사용됩니다. 예는 다음과 같습니다.
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
            writer.write(textToWrite);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
이 예제에서는 "output.txt" 파일에 쓰는 FileWriter 개체를 사용하여 " writer" 라는 BufferedWriter 개체를 만듭니다 . 그런 다음 작성기 개체의 write() 메서드를 사용하여 파일에 textToWrite를 씁니다 . 마지막으로 작성기 개체를 닫습니다 .

WriteString() 메서드

writeString () 메서드는 Files 클래스를 사용하여 파일에 문자열을 쓰기 위해 Java 11에 도입된 편리한 메서드입니다 . 이를 사용하면 한 줄의 코드로 파일에 문자열을 쓸 수 있습니다 . 예는 다음과 같습니다.
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class WriteToFileExample {
    public static void main(String[] args) {
        // create a string to write to a file
        String data = "Hello, world!";

        // create a file object
        Path file = Paths.get("output.txt");

        try {
            // write the string to the file using writeString() method
            Files.writeString(file, data);

            System.out.println("Successfully wrote text to file.");

        } catch (IOException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}
이 예에서는 먼저 파일에 쓰려는 텍스트가 포함된 data 라는 String 개체를 만듭니다 . 그런 다음 쓰려는 파일(이 경우 "output.txt")을 나타내는 file 이라는 Path 개체를 만듭니다 . 다음으로 Files.writeString() 메서드를 사용하여 파일 객체 가 나타내는 파일에 데이터 문자열을 씁니다 . 이 메서드는 두 개의 인수, 즉 쓸 파일을 나타내는 Path 개체와 쓸 데이터가 포함된 String 개체를 사용합니다. 마지막으로 쓰기 작업이 성공하면 성공 메시지를 콘솔에 인쇄하고, 예외가 발생하면 오류 메시지를 인쇄합니다. writeString () 메서드는 Java 11 이상을 사용하여 파일에 문자열을 쓰는 편리한 방법입니다 .

PrintWriter 클래스

PrintWriter 클래스 각 줄이 작성된 후 출력 버퍼를 자동으로 플러시하여 데이터가 즉시 파일에 기록되도록 합니다. 따라서 대량의 텍스트 데이터를 파일에 쓸 때 편리한 선택이 됩니다. 예는 다음과 같습니다.
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            PrintWriter writer = new PrintWriter(new FileWriter("output.txt"));
            writer.println(textToWrite);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
이 예에서는 "output.txt" 파일에 쓰는 FileWrite 개체를 사용 하여 writer 라는 PrintWriter 개체를 만듭니다 . 그런 다음 작성기 개체의 println() 메서드를 사용하여 파일에 textToWrite를 씁니다 . 마지막으로 작성기 개체를 닫습니다 .

DataOutputStream 클래스

DataOutputStream 클래스는 기본 Java 데이터 유형을 바이트 스트림으로 파일에 쓰는 데 사용됩니다 . 예는 다음과 같습니다.
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";
        int numberToWrite = 42;

        try {
            DataOutputStream stream = new DataOutputStream(new FileOutputStream("output.txt"));
            stream.writeUTF(textToWrite);
            stream.writeInt(numberToWrite);
            stream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
이 예에서는 "output.txt" 파일에 쓰는 stream 이라는 DataOutputStream 개체를 만듭니다 . 그런 다음 스트림 개체 의 writeUTF() 메서드를 사용하여 textToWrite 문자열을 쓰고 writeInt() 메서드를 사용하여 파일에 numberToWrite 정수를 씁니다 . 마지막으로 스트림 객체를 닫습니다 .

FileChannel 클래스

FileChannel 클래스는 메모리 매핑된 I/O를 사용하여 파일 데이터를 쓰는 방법을 제공합니다. 예는 다음과 같습니다.
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class WriteToFileExample {
    public static void main(String[] args) {
        String textToWrite = "Hello World!";

        try {
            File file = new File("output.txt");
            RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");
            FileChannel channel = randomAccessFile.getChannel();
            ByteBuffer buffer = ByteBuffer.allocate(1024);
            buffer.put(textToWrite.getBytes());
            buffer.flip();
            channel.write(buffer);
            randomAccessFile.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
이 예에서는 먼저 "output.txt"라는 파일 이름을 매개 변수로 사용하여 file 이라는 파일 개체를 만듭니다 . 그런 다음 파일 개체와 "rw" 모드를 매개 변수로 사용 하여 randomAccessFile 이라는 RandomAccessFile 개체를 만듭니다 . 그런 다음 RandomAccessFile 개체를 사용하여 초기화되는 Channel 이라는 FileChannel 개체를 만듭니다 . 그런 다음 1024바이트 용량의 buffer 라는 ByteBuffer 객체를 생성 하고 textToWrite 문자열을 매개변수로 넣습니다. 그런 다음 버퍼 개체를 뒤집어 쓰기 준비를 하고 write() 메서드 를 사용하여 채널 개체에 씁니다 . 마지막으로, randomAccessFile 객체를 닫습니다 .

결론

결론적으로 Java를 사용하여 파일에 쓰는 것은 여러 내장 클래스와 메소드를 사용하여 수행할 수 있는 소프트웨어 개발의 일반적인 작업입니다. 이 기사에서는 FileOutputStream , BufferedWriter , FileWriter , PrintWriter , DataOutputStreamFileChannel 클래스 사용을 포함하여 파일에 쓰는 방법에 대한 몇 가지 예를 논의했습니다 . 파일에 쓸 때 파일이 제대로 저장되고 리소스가 제대로 해제되도록 하려면 쓰기 후 파일을 적절하게 처리하고 닫는 것이 중요합니다. 이 기사에 제공된 예제를 통해 초보자는 이제 Java를 사용하여 파일에 쓰는 방법에 대한 기본적인 이해를 가질 수 있으며 다양한 사용 사례를 연습하고 실험할 수 있습니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION