EEALL@ONCE
☕`java.nio.file.Files` 클래스 본문
`java.nio.file.Files` 클래스는 Java에서 파일과 디렉토리를 다루는 데 사용되는 유틸리티 클래스입니다. Java 7부터 소개된 NIO(Non-blocking I/O) API에 속하는 클래스 중 하나로, 이를 사용하여 파일을 읽고 쓰는 등 다양한 파일 관련 작업을 수행할 수 있습니다.
`java.nio.file.Files` 클래스는 다양한 메서드를 제공하며, 일반적으로 파일을 읽거나 쓰는 데에 많이 활용됩니다. 주요 메서드에는 다음과 같은 것들이 있습니다:
1. `readAllLines(Path path, Charset cs)`: 지정된 파일에서 모든 라인을 읽어 리스트로 반환합니다. 파일 인코딩을 지정하여 특정 문자셋으로 읽을 수 있습니다.
2. `readAllBytes(Path path)`: 지정된 파일의 모든 바이트를 읽어 바이트 배열로 반환합니다.
3. `newBufferedWriter(Path path, Charset cs, OpenOption... options)`: 지정된 파일에 쓰기 위한 버퍼드 라이터를 생성합니다. 파일 인코딩과 옵션들을 설정할 수 있습니다.
4. `write(Path path, byte[] bytes, OpenOption... options)`: 바이트 배열을 지정된 파일에 씁니다. 옵션들을 설정할 수 있습니다.
5. `write(Path path, Iterable<? extends CharSequence> lines, Charset cs, OpenOption... options)`: 문자열 리스트를 지정된 파일에 씁니다. 옵션과 문자셋을 설정할 수 있습니다.
등등 다양한 파일 처리 메서드를 제공하며, NIO API의 특성상 비동기 파일 I/O 작업도 가능합니다. `java.nio.file.Files` 클래스를 사용하면 파일 처리가 더 효율적이고 편리해집니다.
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class FileReadingExampleWithNIO {
public static void main(String[] args) {
// 디렉토리 경로와 파일 이름을 따로 불러옵니다.
String folderPath = "C:/example_folder";
String fileName = "example.txt";
// Paths 클래스를 사용하여 경로를 합칩니다.
Path filePath = Paths.get(folderPath, fileName);
// 파일을 읽어서 내용을 출력합니다.
try {
List<String> lines = Files.readAllLines(filePath, Charset.forName("UTF-8"));
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
System.err.println("파일을 읽을 수 없습니다: " + e.getMessage());
}
}
}
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileWritingExampleWithNIO {
public static void main(String[] args) {
// 디렉토리 경로와 파일 이름을 따로 불러옵니다.
String folderPath = "C:/example_folder";
String fileName = "example.txt";
// Paths 클래스를 사용하여 경로를 합칩니다.
Path filePath = Paths.get(folderPath, fileName);
// 파일에 쓸 내용을 준비합니다.
String content = "Hello, NIO API!\nThis is a sample content.";
// 파일에 내용을 씁니다.
try {
Files.write(filePath, content.getBytes(Charset.forName("UTF-8")));
System.out.println("파일에 내용이 성공적으로 쓰여졌습니다.");
} catch (IOException e) {
System.err.println("파일에 내용을 쓸 수 없습니다: " + e.getMessage());
}
}
}
java 7 버전보다 아래라면,
대체 방법은 아래에 있다 :
https://at-once-moment.tistory.com/66
'언어💻 > 자바☕' 카테고리의 다른 글
☕Scanner - nextInt (0) | 2023.08.11 |
---|---|
☕ foreach (0) | 2023.08.09 |
☕ `FileInputStream`, `InputStreamReader`, `BufferedReader` (0) | 2023.08.07 |
☕ 자바 자료형 - var 연산자 (0) | 2023.08.04 |
☕ 자바 자료형 - 원시 자료형 primitive type vs 참조 자료형 reference type (0) | 2023.08.03 |