Java에서 텍스트 파일에 텍스트 추가
-
Java의
FileOutputStream
클래스를 사용하여 텍스트 파일에 텍스트 추가 -
Java의
FileWriter
클래스를 사용하여 텍스트 파일에 텍스트 추가 -
Java의
BufferedWriter
클래스를 사용하여 텍스트 파일에 텍스트 추가 -
Java의
Files
클래스를 사용하여 텍스트 파일에 텍스트 추가 - Java에서 텍스트 파일에 텍스트 추가
이 자습서에서는 Java에서 기존 텍스트 파일에 텍스트를 추가하는 방법을 소개합니다. 더 나은 안내를 위해 몇 가지 예제 코드도 나열했습니다.
읽기와 쓰기는 파일로 작업할 때 할 수 있는 가장 기본적인 두 가지 작업입니다. Java에서 파일에 데이터를 쓰거나 추가하는 방법에는 여러 가지가 있습니다. 이 기사에서는 텍스트 파일에 추가하는 네 가지 방법에 대해 알아봅니다.
Java의 FileOutputStream
클래스를 사용하여 텍스트 파일에 텍스트 추가
FileOutputStream
클래스는 바이너리 데이터를 파일에 쓰는 데 사용됩니다. int
또는 float
와 같은 기본 데이터 유형에 주로 선호되지만 문자 지향 데이터 작성에도 사용할 수 있습니다.
문자열을 쓰기 전에 먼저 바이트 배열로 변환해야 합니다. 이를 위해 getBytes()
메소드를 사용할 수 있습니다. 또한 생성자에 대한 두 번째 인수로 true
를 전달해야 합니다. 이 두 번째 인수는 부울 추가 플래그에 대한 것으로 기존 파일에 추가하려고 함을 나타내기 위해 수행되었습니다.
무시하면 FileOutputStream
클래스가 파일 내용을 덮어씁니다. 파일이 언급된 위치에 아직 없으면 새 파일이 생성됩니다.
다음은 The quick brown fox jumps over the lazy dog
문장을 기존 파일에 추가하려는 예입니다. \r
및 \n
은 새 줄의 시작 부분에 텍스트를 삽입하는 데 사용됩니다.
import java.io.FileOutputStream;
public class Main {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileOutputStream f = new FileOutputStream(filePath, true);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
byte[] byteArr = lineToAppend.getBytes(); // converting string into byte array
f.write(byteArr);
f.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Java의 FileWriter
클래스를 사용하여 텍스트 파일에 텍스트 추가
Java FileWriter
클래스는 파일에 문자 스트림을 기록하도록 설계되었습니다. 기존 파일이나 새 파일에 문자나 문자열을 추가하는 데 사용할 수 있습니다. 파일이 언급된 경로에 없으면 새 파일이 생성되고 데이터가 이 새 파일에 기록됩니다.
이전 FileOutputStream
클래스와 달리 쓰기 전에 문자열을 바이트로 변환할 필요가 없습니다. 그러나 FileWriter
생성자에 대한 두 번째 인수로 true
도 전달해야 합니다. 이는 기존 파일에 추가하려고 함을 나타냅니다.
생략하면 파일의 기존 내용을 덮어씁니다. 다음 코드는 FileWriter
를 사용하여 기존 파일에 한 줄을 추가하는 방법을 보여줍니다.
import java.io.FileWriter;
public class SimpleTesting {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileWriter fw = new FileWriter(filePath, true);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
fw.write(lineToAppend);
fw.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Java의 BufferedWriter
클래스를 사용하여 텍스트 파일에 텍스트 추가
FileWriter
클래스는 종종 BufferedWriter
와 같은 다른 작성자에 의해 래핑됩니다. 이 프로세스는 BufferedWriter
가 FileWriter
보다 훨씬 효율적이기 때문에 수행됩니다.
여러 쓰기 작업이 있는 경우 BufferedWriter
가 FileWriter
보다 선호됩니다. 내부 버퍼 메모리를 사용하여 파일에 추가해야 하는 데이터를 저장합니다. 이 버퍼가 가득 차거나 더 이상 추가할 것이 없으면 BufferedWriter
는 실제 파일에 씁니다.
자주 쓰는 대신 버퍼에서 파일에 많은 양의 데이터를 씁니다. 그의 시스템 호출이 줄어듭니다. 따라서 일반 FileWriter
보다 훨씬 효율적입니다.
그러나 단일 쓰기 작업이 있는 경우 BufferedWriter
는 쓰기 프로세스에 또 다른 단계를 추가합니다. 따라서 FileWriter
를 사용하는 것이 좋습니다.
BufferedWriter
를 사용하려면 먼저 BufferedWriter
의 생성자에 전달할 FileWriter
개체가 필요합니다. 추가 플래그에 true
를 사용해야 합니다.
다음 코드는 Java에서 BufferedWriter
의 작동을 보여줍니다.
import java.io.BufferedWriter;
import java.io.FileWriter;
public class Main {
public static void main(String args[]) {
try {
String filePath = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
FileWriter fw = new FileWriter(filePath, true);
BufferedWriter bw = new BufferedWriter(fw);
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
bw.write(lineToAppend);
bw.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
Java의 Files
클래스를 사용하여 텍스트 파일에 텍스트 추가
Files
유틸리티 클래스는 Java 7에 추가되었으며 파일에 데이터를 쓰는 또 다른 방법을 제공합니다. 이를 위해 Files.write()
메서드를 사용합니다. 이 방법에는 파일 경로가 필요하며 추가할 문자열의 바이트 배열도 필요합니다.
또한 기존 파일에 텍스트를 추가하려면 StandardOpenOption.APPEND
를 지정해야 합니다. 파일이 주어진 경로에 있는지 확인하십시오. 그렇지 않으면 NoSuchFileException
을 반환합니다.
동일한 파일에 여러 번 기록해야 하는 경우에는 이 방법을 사용하지 않는 것이 좋습니다. 파일도 여러 번 열리고 닫혀 전체 성능이 저하되기 때문입니다.
아래의 다음 코드는 Java I/O에서 Files.write()
메소드가 작동하는 방식을 보여줍니다.
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
public class Main {
public static void main(String args[]) {
try {
String file = "C:\\Users\\Lenovo\\Desktop\\demo.txt";
String lineToAppend = "\r\nThe quick brown fox jumps over the lazy dog";
byte[] byteArr = lineToAppend.getBytes();
Files.write(Paths.get(file), byteArr, StandardOpenOption.APPEND);
} catch (Exception e) {
System.out.println(e);
}
}
}
Java에서 텍스트 파일에 텍스트 추가
Java는 파일 처리를 위한 여러 옵션을 제공합니다. FileOutputStream
, FileWriter
, BufferedWriter
또는 Files
유틸리티 클래스를 사용하여 파일에 데이터를 추가할 수 있습니다.
FileOutputStream
및 Files
유틸리티 클래스의 경우 먼저 문자열을 바이트열 배열로 변환한 다음 write()
메서드에 전달해야 합니다.
BufferedWriter
는 동일한 파일에 소량의 데이터를 여러 번 써야 할 때 선호됩니다. 반면 FileWriter
및 Files
유틸리티 클래스는 많은 수의 쓰기에 대해 여러 시스템 호출을 수행합니다. 이는 전반적인 성능을 감소시킵니다.
관련 문장 - Java File
- Java에서 파일에서 줄 바꿈을 제거하는 방법
- Java에서 파일 닫기
- Java JAR 파일 생성 및 실행
- Java를 사용하여 디렉토리에서 파일 삭제
- Java에서 두 파일의 내용 비교
- Java에서 파일 크기 얻기