File
- File 클래스
- File 객체 생성
- 파일/ 디렉토리 생성 및 삭제 메소드
- 파일/ 디렉토리 정보 리턴 메소드
- File스트림
- FileInputStream
- FileOuputStream
- FileReader
- FileWriter
- 보조 스트림
- 성능향상 보조 스트림
File
파일 시스템의 파일을 표현하는 클래스
파일 크기, 파일 속성, 파일 이름 등의 정보와 파일 생성 및 삭제 기능 제공
- File 객체 생성
File file = new File("파일 경로");
File file = new File("C:/data/test.txt");
- 파일/ 디렉토리 생성 및 삭제 메소드
리턴 타입 | 메소드 | 설명 |
boolean | createNewFile() | 새로운 파일 생성 |
boolean | mkdir() | 새로운 디렉토리 생성 |
boolean | mkdirs() | 경로 상에 없는 모든 디렉토리 생성 |
boolean | delete() | 파일 or 디렉토리 삭제 |
- 파일/ 디렉토리 정보 리턴 메소드
리턴 타입 | 메소드 | 설명 |
boolean | canExcute() | 실행할 수 있는 파일인지 여부 |
boolean | canRead() | 읽을 수 있는 파일인지 여부 |
boolean | canWrite() | 수정 및 저장할 수 있는 파일인지 여부 |
String | getName() | 파일 이름 리턴 |
String | getParent() | 부모 디렉토리 리턴 |
File | getParentFile() | 부모 디렉토리를 File객체로 생성 후 리턴 |
String | getPath() | 전체 경로 리턴 |
boolean | isDirectory() | 디렉토리인지 여부 |
boolean | isFile() | 파일인지 여부 |
boolean | isHidden() | 숨김 파일인지 여부 |
long | lastModified() | 마지막 수정 날짜 및 시간 리턴 |
long | length() | 파일 크기 리턴 |
String[] | list() | 디렉토리 포함한 파일목록을 String 배열로 리턴 |
String[] | list(FilenameFilterfiler) | 디렉토리에 포함된 파일 및 서브 디렉토리 목록 중 FilenameFilterfiler에 맞는 것만 String배열로 리턴 |
File[] | listFiles() | 디렉토리에 포함된 파일 및 서브 디렉토리 목록 전부 File 배열로 리턴 |
File[] | listFile(FilenameFilterfiler) | 디렉토리에 포함된 파일 및 서브 디렉토리 목록 중 FilenameFilterfiler에 맞는 것만 File배열로 리턴 |
파일 스트림(File Stream)
- FileInputStream
파일로부터 바이트 단위로 읽을 때 사용
그림, 오디오, 비디오, 텍스트 파일 등 모든 종류의 파일 읽기 가능
InputStream의 하위 클래스로 InputStream과 사용 방법 동일
》 객체 생성
FileInputStream객체가 생성될 떄 파일과 직접 연결 됨
만약 파일이 존재하지 않으면 FileNotFoundException이 발생하므로 예외처리 필수
FileInputStream fis = new FileInputStream("C:/data/test.txt");
- FileOutputStream
파일로부터 바이트 단위로 저장할 때 사용
그림, 오디오, 비디오, 텍스트 파일 등 모든 종류의 데이터를 파일로 저장
OutputStream의 하위 클래스로 OutputStream과 사용 방법 동일
》 객체 생성
FileOutputStream객체가 생성될 때 파일과 직접 연결 됨
만약 파일이 존재하지 않으면 자동 생성되지만
이미 파일이 존재하는 경우 파일을 덮어쓰는 단점이 있음
FileOutputStream fos = new FileOutputStream("C:/data/test.txt");
//만일 기존 파일에 이어서 계속 작성하고 싶다면 아래 예제처럼 객체 생성 시 가능
FileOutputStream fos = new FileOutputStream("C:/data/test.txt", true);
- FileReader
텍스트 파일로부터 문자 단위로 읽을 때 사용
텍스트만 읽기 가능
Reader의 하위 클래스로 Reader와 사용 방법 동일
》 객체 생성
FileReader객체가 생성될 때 파일과 직접 연결 됨
만약 파일이 존재하지 않으면 FileNotFoundException이 발생하므로 예외처리 필수
FileReader fos = new FileReader("C:/data/test.txt");
FileReader fos = new FileReader(new File("C:/data/test.txt"));
- FileWriter
텍스트 파일로부터 문자 단위로 저장할 때 사용
텍스트만 저장 가능
Writer의 하위 클래스로 Writer와 사용 방법 동일
》 객체 생성
FileWriter객체가 생성될 때 파일과 직접 연결 됨
만약 파일이 존재하지 않으면 자동으로 생성하지만
이미 파일이 존재하는 경우 파일을 덮어쓰는 단점이 있음
FileWriter fw = new FileWriter("C:/data/test.txt");
//만일 기존 파일에 이어서 계속 작성하고 싶다면 아래 예제처럼 객체 생성 시 가능
FileWriter fw = new FileWriter(new File("C:/data/test.txt"), true);
보조 스트림
스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해 사용
보조스트림은 실제 데이터를 주고 받는 스트림이 아니기 때문에 입출력 처리 불가능
기반 스트림을 먼저 생성한 후 이를 이용하여 보조 스트림 생성

- 보조 스트림 종류
문자변환(InputStreamReader / OutputStreamWriter),
입출력 성능(BufferedInputStream / BufferedOutputStream),
기본 데이터 타입 출력(DataInputStream / DataOutputStream),
객체 입출력(ObjectInputStream / ObjectOutputStream) 등의 기능을 제공
》 예시
FileInputStream fis = new FileInputStream("sample.txt"); // 기반 스트림 생성
BufferedInputStream bis = new BufferedInputStream(fis); // 보조 스트림 생성
bis.read(); // 보조스트림으로부터 데이터 읽어옴
- 성능 향상 보조 스트림
느린 속도로 인해 입출력 성능에 영향을 미치는 입출력 소스를 이용하는 경우 사용
입출력 소스와 직접 작업하지 않고 버퍼에 데이터를 보내 한꺼번에 작업을 하여 실행 성능 향상 (입출력 횟수 줄임)

'Java > Java 개념' 카테고리의 다른 글
21 - 2. Map, Properties, Stack, Queue, Deque (0) | 2022.10.11 |
---|---|
21 - 1. 컬렉션(Collection) (0) | 2022.10.11 |
19. 입출력(IO) (0) | 2022.10.06 |
18. 예외처리 (0) | 2022.10.05 |
17. 다형성(Polymorphism) (0) | 2022.10.04 |