항상 코딩을 하다보면 뭐가 있는지 알지 못해 고전하는 경우가 많은 것 같습니다. 일단 뭐가 있는 지 알고 상황에 맞는 것들을 취사선택해서 습득 하시면 도움이 되지 않을까 생각해봅니다.
라이브러리/ 클래스 | 설명 | 입출력단위 | 주요 메서드 / 기능 | 주로 사용하는 경우 |
FileInputStream / FileOutputStream |
파일을 바이트 단위로 읽고 씁니다. | 바이트 | read(), write() | 이미지, 동영상 등 바이너리 파일을 처리할 때 |
FileReader / FileWriter |
파일을 문자 단위로 읽고 씁니다. | 문자 | read(), write() | 텍스트 파일을 간단히 읽고 쓸 때 |
BufferedReader / BufferedWriter |
버퍼를 사용하여 성능을 최적화한 문자 입출력 스트림입니다. | 문자 | readLine(), write(), flush() | 라인 단위로 텍스트 파일을 읽고 쓸 때, 대용량 파일 처리 시 |
DataInputStream / DataOutputStream |
기본 데이터 타입(정수, 부동소수점 등)을 읽고 쓰기 위한 스트림입니다. | 바이트 | readInt(), readDouble(), writeInt(), writeDouble() | 정수, 실수 등 기본 데이터 타입을 파일에 저장할 때 |
ObjectInputStream /ObjectOutputStream | 객체 직렬화를 통해 객체를 파일로 저장하고 읽을 수 있습니다. | 객체(바이트) | readObject(), writeObject() | 객체 상태를 파일로 저장하고, 나중에 복원할 때 |
java.nio.file.Files | 다양한 파일 작업을 지원하는 유틸리티 클래스입니다. | 바이트 / 문자 | readAllLines(), write(), lines(), copy(), move(), exists() | 간단하게 파일 읽기/쓰기, 파일 존재 여부, 대용량 파일 처리 시 |
File | 파일 경로 및 파일 정보를 다룰 수 있는 클래스입니다. | - | exists(), getName(), getPath(), length(), delete(), mkdir() | 파일 및 디렉터리 관리 (삭제, 생성, 이름, 크기 등) |
RandomAccessFile | 파일의 특정 위치에서 읽기/쓰기가 가능한 클래스입니다. | 바이트 | seek(), read(), write(), readLine() | 파일의 임의 위치에 접근할 필요가 있을 때 |
Scanner | 파일을 간편하게 라인 단위로 읽거나 구분자로 분리할 수 있는 클래스입니다. | 문자 | nextLine(), next(), useDelimiter() | 텍스트 파일을 라인 단위로 읽고, 특정 구분자로 분리할 때 |
Properties | 파일에서 키-값 쌍을 읽고 쓸 수 있는 클래스입니다. | 문자 | load(), store(), getProperty(), setProperty() | 설정 파일(.properties)을 읽고 쓸 때 |
Path 및 Paths | 파일 경로를 조작할 수 있는 클래스입니다. | - | toAbsolutePath(), getFileName(), getParent(), resolve(), relativize() | 파일 경로의 조작, 경로 계산 등을 할 때 |
FileChannel | NIO의 채널을 사용해 대용량 파일을 효율적으로 읽고 쓰는 클래스입니다. | 바이트 | read(), write(), position(), truncate(), transferTo(), transferFrom() | 파일 복사, 대용량 파일의 효율적 입출력 |
ClassLoader | 자바 리소스를 클래스패스에서 불러오는 데 사용합니다. | 바이트 | getResourceAsStream(), getResource(), findClass(), defineClass() | resources 폴더의 리소스 파일을 로드할 때 |
- FileInputStream / FileOutputStream
- 설명: 파일을 바이트 단위로 읽고 쓸 때 사용하는 스트림 클래스입니다.
- 용도: 이미지, 비디오 등 바이너리 파일을 다룰 때 유용합니다.
- FileReader / FileWriter
- 설명: 파일을 문자 단위로 읽고 쓰는 클래스입니다.
- 용도: 텍스트 파일을 간단하게 처리할 때 적합합니다.
- BufferedReader / BufferedWriter
- 설명: 파일을 읽거나 쓸 때 버퍼를 사용하여 성능을 향상시킵니다.
- 용도: 대용량 파일을 라인 단위로 효율적으로 처리할 때 사용합니다.
- DataInputStream / DataOutputStream
- 설명: 기본 데이터 타입(정수, 실수 등)을 파일에 저장하고 읽을 수 있게 해줍니다.
- 용도: 데이터 타입이 분명한 값을 입출력할 때 사용합니다.
- ObjectInputStream / ObjectOutputStream
- 설명: 객체를 직렬화하여 파일에 저장하고, 저장된 객체를 복원할 수 있습니다.
- 용도: 객체 상태를 그대로 저장하거나 복원할 때 사용합니다.
- java.nio.file.Files
- 설명: 파일과 디렉터리에 대한 다양한 작업을 간편하게 수행할 수 있는 유틸리티 클래스입니다.
- 용도: 파일 존재 확인, 파일 복사 및 이동, 간단한 파일 읽기/쓰기에 사용됩니다.
- File
- 설명: 파일 또는 디렉터리의 경로 정보를 제공하며, 파일의 존재 여부와 같은 속성을 확인할 수 있습니다.
- 용도: 파일의 기본 정보(이름, 경로, 크기)를 확인하거나 삭제, 생성할 때 사용합니다.
- RandomAccessFile
- 설명: 파일의 특정 위치에서 읽기/쓰기를 지원하는 클래스입니다.
- 용도: 파일의 특정 위치에 빠르게 접근해야 할 때 유용합니다.
- Scanner
- 설명: 파일을 라인 단위로 읽거나, 구분자로 분리하여 쉽게 데이터를 추출할 수 있게 해줍니다.
- 용도: 텍스트 파일을 라인 단위로 읽어와 데이터를 분석할 때 사용합니다.
- Properties
- 설명: 키-값 쌍을 통해 설정 파일을 다루는 클래스입니다.
- 용도: 애플리케이션 설정 파일(.properties)을 읽고 쓸 때 사용됩니다.
- Path 및 Paths
- 설명: 파일 경로를 다루는 클래스이며, 경로 조작 및 계산을 지원합니다.
- 용도: 파일 경로를 조작하고, 특정 위치에 있는 파일에 접근할 때 사용합니다.
- FileChannel
- 설명: NIO의 채널 기반 입출력을 사용해 대용량 파일을 효율적으로 처리합니다.
- 용도: 큰 파일을 복사하거나 빠르게 읽고 쓸 때 유용합니다.
- ClassLoader
- 설명: 클래스와 리소스를 JVM의 클래스 경로에서 동적으로 로드합니다.
- 용도: resources 폴더에 있는 리소스 파일이나 클래스를 로드할 때 사용합니다.
'JAVA' 카테고리의 다른 글
List.sort() 메서드 사용방법 정리 (0) | 2024.12.11 |
---|---|
StringBuilder, StringBuffer 메서드 정리, 차이점? (0) | 2024.10.25 |
Map 메서드 사용법 정리 (0) | 2024.10.25 |
List 메서드 사용법 정리 (1) | 2024.10.25 |
문자열을 더하는 방법 정리 (0) | 2024.10.25 |