Java 공부

[JAVA] 26장 I/O - 정의 및 File 클래스 생성자

piedra_de_flor 2023. 1. 19. 17:49

 

I/O

I (Input) / O (Output) 의 약자이며 "아이오" 라고 읽는다.

 주로 두가지 경우에 사용된다.

  • 파일을 읽거나 저장할 일이 있을 경우
  • 다른 서버나 디바이스로 보낼 일이 있을 경우

JVM을 기준으로 Input은 파일에 읽을때, Output은 파일을 이용해 데이터를 가져오거나 외부로  전송할때 사용한다.

 

byte 기반의 데이터를 처리할때는 java.io 패키지 안의 Stream 클래스를 사용하고,

char 기반의 문자열로 이루어진 문자열 파일을 처리 할 때에는 Reader, Writer 클래스를 사용한다.

 

Java 1.4 이후에는 보다 빠르게 I/O를 처리하기 위해 Buffer와 Channel 기반으로 데이터를 처리하는 NIO (New I/O)가 등장

Java 7 에서는 기존의 단점들을 보완한 NIO2 가 등장


File , Files 클래스

java.io 패키지에는 File이라는 클래스가 존재하며 파일(File) 뿐만이 아니라 경로(Path)의 정보도 포함한다.

File 클래스는 유닉스 계열의 파일에서 사용하는 몇몇 기능들을 제대로 제공하지 못한다는 단점이 존재한다.

 

그래서 Java 7 부터 등장한 NIO2에 포함된 Files 클래스가 File 클래스의 메소드들을 대체하며, 객체를 생성하여 데이터를 처리하는 File 클래스와는 다르게 Files 클래스는 모든 메소드가 static으로 선언되어 있어 객체를 생성할 필요가 없다.

 

 

File 클래스 생성자

생성자 설명
File(File parent, String child) 이미 생성된 FIle객체 (parent)와 그 경로의
하위 경로 이름으로새로운 File객체 생성
File(String pathname) 지정된 경로 이름으로 File 객체 생성
File(String parent, String child) 부모 파일의 경로와, 그 하위의 경로를 각각 매개변수로 지정하여
해당 경로를 조합하여 그 위치에 대한 File 객체 생성
File(URI uri) URI에 따른 File 객체 생성

※ 여기서 child 는 경로가 될 수도 파일명이 될 수 도 있다.

 

 

 

 

 


참고 - 자바의 신 2 개정판