자바/입출력 IO

표준 입출력과 File: File(1)

백_곰 2022. 4. 27. 17:34

1. File

- 입출력에 대한 가장 기본적이면서도 가장 많이 사용되는 입출력 대상이기 때문에 중요하다.

 

 

- 아래는 File에 대한 생성자/메서드를 설명한다.

: 중요한 부분만 다뤘다. 자세한 내용은 915p를 참고한다.

 

(1) File(String fileName)

: 주어진 문자열을 이름으로 갖는 파일을 위한 File 인스턴스를 생성한다.

: 여기서 fileName은 파일 이름만 사용해도 되는데 이 경우 프로그램이 실행되는 위치가

경로로 간주된다.

 

(2) File(URI uri)

: 지정된 uri로 파일 생성

 

(3) File(String pathName, String fileName)

또는

File(File pathName, String fileName)

: 파일의 경로와 이름을 따로 분리해서 지정할 수 있도록 한 생성자이다.

: 두번째 것은 경로를 문자열이 아닌 File 인스턴스인 경우를 위해서 제공된 것이다.

 

(4) String getName()

: 파일 이름을 String으로 변환한다.

 

(5) String getPath()

: 파일의 경로를 String으로 반환한다.

 

(6) String getAbsolutePath()

또는 

File getAbsoluteFile()

: 파일의 절대경로를 각각 String과 File로 반환한다.

 

(7) String getParent()

또는

File getParentFile()

: 파일의 조상 디렉토리를 각각 String과 File로 반환한다.

 

(8) String getCanonicalPath()

또는

File getCanonicalFile()

: 파일의 정규 경로를 각각 String과 File로 반환한다.

 

 

( 멤버변수에 관한 설명은 915p를 참고한다. )

 

 

- File과 관련된 더 많은 메서드는 918p~919p를 참고해서 필요할 때마다 쓰자.

 

 

 

1-1. File을 이해하기 위한 예제(1)

: 위에서 봤던 생성자/메서드를 이해하는 예제이다.

 

[File] Exercise001
sun.boot.class.path

 

( 절대 경로는 파일 시스템의 루트로부터 시작하는 파일의 전체 경로를 의미한다. )

( 현재 디렉토리를 의미하는 '.'와 같은 기호나 링크를 포함하고 있는 경우 절대 경로가 두 개 이상 존재한다. )

 

( 정규 경로는 기호나 링크 등을 포함하지 않는 유일한 경로를 의미한다. )

 

( 시스템 속성 중에서 user.dir의 값을 확인하면 현재 프로그램이 실행 중인 디렉토리를 알 수 있다. )

 

( OS의 시스템 변수로 설정하는 classpath외에 sun.boot.class.path라는 시스템 속성에 기본적인 classpath가

있어서 기본적인 경로들은 이미 설정 되어 있다. )

 

( 예제에서 사용했던 File f = new File("c:\\jdk1.8\\work\\ch15\\FileEx1.java"); 부분을 아래의 두 가지

버전으로 변경 할 수 있다. )

 

(1) File f = new File("c:\\jdk1.8\\work\\ch15\\FileEx1.java");

 

(2) File dir = new File("c:\\jdk1.8\\work\\ch15");

File f= new File(dir, "FileEx1.java");

 

 

( 한 가지 알아야 할 점은 File 인스턴스를 생성했다고 해서 파일이나 디렉토리가 생기는 것은 아니다. )

( 파일명이나 디렉토리명으로 지정된 문자열이 유효하지 않더라도 컴파일 에러나 예외를 발생시키지 않는다. )

 

( 그러므로, File 인스턴스를 생성 후, 출력 스트림을 생성하거나 createNewFile()을 호출해야 한다. )

( 아래의 코드를 보고 이해하자.)

 

(1) 이미 존재하는 파일을 참조할 때

File f = new File("c:\\jdk1.8\\work\\ch15", "FileEx1.java");

 

(2) 기존에 없는 파일을 참조할 때

File f = new File("c:\\jdk1.8\\work\\ch15", "FileEx1.java");

f.createNewFile();

 

 

 

 

1-2. File을 이해하기 위한 예제(2)

: 지정한 디렉토리에 포함된 파일과 디렉토리의 목록을 보여주는 예제이다.

 

잘못된 값
해당 디렉토리의 파일명과 디렉토리명을 보여주는 출력문

 

 

다음 장

표준 입출력과 File: File(2) (tistory.com)

 

표준 입출력과 File: File(2)

1-3. File을 이해하기 위한 예제(3) : 1-2 예제(2)에서 했던 코드에 추가로 서브 디렉토리의 파일과 디렉토리까지 보여주는 예제이다. package File; import java.io.File; import java.util.ArrayList; import ja..

kind-coding.tistory.com